Box.htm
1 year ago
DropBox.htm
1 year ago
FTP.htm
1 year ago
GoogleDrive.htm
1 year ago
JetStorage.htm
1 year ago
Local.htm
1 year ago
OneDrive.htm
1 year ago
S3.htm
1 year ago
SFTP.htm
1 year ago
pCloud.htm
1 year ago
S3.htm
188 lines
| 1 | <div ng-controller="destinationS3"> |
| 2 | |
| 3 | <style> |
| 4 | .s3-vendors { |
| 5 | list-style: none; |
| 6 | padding: 0; |
| 7 | margin: 0; |
| 8 | } |
| 9 | .s3-vendors li { |
| 10 | padding: 5px; |
| 11 | display: inline-block; |
| 12 | border: 1px solid #dddddd; |
| 13 | margin-right: 10px; |
| 14 | margin-bottom: 10px; |
| 15 | cursor: pointer; |
| 16 | } |
| 17 | .s3-vendors li > div { |
| 18 | width: 60px; |
| 19 | height: 60px; |
| 20 | background-image: url("{{icons.destinations_icon}}"); |
| 21 | background-position: 60px 0; |
| 22 | } |
| 23 | |
| 24 | .s3-vendors li.amazon > div { background-position: 60px 0; } |
| 25 | .s3-vendors li.amazon:hover > div, .s3-vendors li.amazon.active > div { background-position: 0 0; } |
| 26 | |
| 27 | .s3-vendors li.backblaze > div { background-position: 60px -60px; } |
| 28 | .s3-vendors li.backblaze:hover > div, .s3-vendors li.backblaze.active > div { background-position: 0 -60px; } |
| 29 | |
| 30 | .s3-vendors li.digitalocean > div { background-position: 60px -120px; } |
| 31 | .s3-vendors li.digitalocean:hover > div, .s3-vendors li.digitalocean.active > div { background-position: 0 -120px; } |
| 32 | |
| 33 | .s3-vendors li.ibm > div { background-position: 60px -180px; } |
| 34 | .s3-vendors li.ibm:hover > div, .s3-vendors li.ibm.active > div { background-position: 0 -180px; } |
| 35 | |
| 36 | .s3-vendors li.googlecloud > div { background-position: 60px -240px; } |
| 37 | .s3-vendors li.googlecloud:hover > div, .s3-vendors li.googlecloud.active > div { background-position: 0 -240px; } |
| 38 | |
| 39 | .s3-vendors li.wasabi > div { background-position: 60px -300px; } |
| 40 | .s3-vendors li.wasabi:hover > div, .s3-vendors li.wasabi.active > div { background-position: 0 -300px; } |
| 41 | |
| 42 | .s3-vendors li.custom > div { background-position: 60px -360px; } |
| 43 | .s3-vendors li.custom:hover > div, .s3-vendors li.custom.active > div { background-position: 0 -360px; } |
| 44 | |
| 45 | .s3-vendors li.scaleway > div { background-position: 60px -420px; } |
| 46 | .s3-vendors li.scaleway:hover > div, .s3-vendors li.scaleway.active > div { background-position: 0 -420px; } |
| 47 | |
| 48 | .s3-vendors li.oracle > div { background-position: 60px -480px; } |
| 49 | .s3-vendors li.oracle:hover > div, .s3-vendors li.oracle.active > div { background-position: 0 -480px; } |
| 50 | |
| 51 | .s3-vendors li.cloudflare > div { background-position: 60px -540px; } |
| 52 | .s3-vendors li.cloudflare:hover > div, .s3-vendors li.cloudflare.active > div { background-position: 0 -540px; } |
| 53 | |
| 54 | .s3-vendors li.vultr > div { background-position: 60px -600px; } |
| 55 | .s3-vendors li.vultr:hover > div, .s3-vendors li.vultr.active > div { background-position: 0 -600px; } |
| 56 | |
| 57 | span.input-group-addon { |
| 58 | background: #f0f0f1; |
| 59 | padding-right: 10px; |
| 60 | padding-left: 10px; |
| 61 | padding-top: 8px; |
| 62 | font-weight: normal; |
| 63 | |
| 64 | } |
| 65 | |
| 66 | select.form-control { |
| 67 | border-color: #f0f0f1; |
| 68 | } |
| 69 | input.form-control { |
| 70 | border-color: #f0f0f1; |
| 71 | |
| 72 | } |
| 73 | |
| 74 | |
| 75 | </style> |
| 76 | |
| 77 | <div class="form-group row"> |
| 78 | <label for="s3-vendors" class="col-sm-3 col-form-label jb-label">{{ lang.t("Vendor")}}</label> |
| 79 | <div class="col-sm-7"> |
| 80 | <div class="input-group"> |
| 81 | <ul class="s3-vendors" id="s3-vendors"> |
| 82 | <li ng-repeat="(vendor_id, vendor) in vendors" class="{{vendor_id}}" ng-class="{ 'active': vendor_id == selected_vendor }" ng-click="changeVendor(vendor_id, true)"> |
| 83 | <div></div> |
| 84 | </li> |
| 85 | </ul> |
| 86 | </div> |
| 87 | </div> |
| 88 | </div> |
| 89 | |
| 90 | <div class="form-group row" ng-show="selected_vendor === 'custom'"> |
| 91 | <label for="endpoint" class="col-sm-3 col-form-label jb-label">{{ lang.t("Endpoint") }}</label> |
| 92 | <div class="col-sm-7"> |
| 93 | <input |
| 94 | type="text" |
| 95 | class="form-control" |
| 96 | id="endpoint" |
| 97 | ng-model="saveData.options.endpoint" |
| 98 | placeholder="{{ lang.t('Enter the custom endpoint URL') }}" |
| 99 | /> |
| 100 | <p class="pd-3">{{ lang.t("Specify a custom endpoint for the selected vendor.") }}</p> |
| 101 | </div> |
| 102 | </div> |
| 103 | |
| 104 | |
| 105 | <div class="form-group row" ng-hide="vendors[selected_vendor].regions === false"> |
| 106 | <label class="control-label col-md-3 col-sm-3 col-xs-12" for="region">{{ lang.t("Region") }}</label> |
| 107 | <div class="col-md-6 col-sm-6 col-xs-12"> |
| 108 | <div ng-class="{ 'input-group': vendors[selected_vendor].regions.length && selected_region == 0 }"> |
| 109 | <select ng-show="vendors[selected_vendor].regions.length" id="region" class="form-control" data-ng-options="region_id as region.name group by region.group for (region_id, region) in vendors[selected_vendor].regions" ng-change="changeRegion()" data-ng-model="selected_region"></select> |
| 110 | <span ng-show="vendors[selected_vendor].regions.length && selected_region == 0" class="input-group-addon">{{ lang.t("Region") }}</span> |
| 111 | <input ng-show="!vendors[selected_vendor].regions.length || selected_region == 0" id="region_custom" class="form-control col-md-7 col-xs-12" type="text" ng-model="saveData.options.region" value="saveData.options.region" /> |
| 112 | </div> |
| 113 | </div> |
| 114 | </div> |
| 115 | <div class="form-group row" ng-repeat="field in vendors[selected_vendor].extrafields"> |
| 116 | <label class="col-sm-3 col-form-label">{{ field.label }}</label> |
| 117 | <div class="col-sm-7"> |
| 118 | <input |
| 119 | type="text" |
| 120 | class="form-control" |
| 121 | id="{{ field.name }}" |
| 122 | ng-model="saveData.options.extrafields[field.name]" |
| 123 | placeholder="{{ field.description || '' }}" /> |
| 124 | </div> |
| 125 | </div> |
| 126 | |
| 127 | <div class="form-group row" ng-if="!saveData.options.refresh_token"> |
| 128 | <label for="s3_access_key" class="col-sm-3 col-form-label jb-label">{{ lang.t("Access Key") }}</label> |
| 129 | <div class="col-sm-7"> |
| 130 | <input type="text" class="form-control" id="s3_access_key" name="s3_access_key" ng-model="saveData.options.access_key"> |
| 131 | <p class="pd-3">{{ lang.t("Your S3 access key.") }}</p> |
| 132 | </div> |
| 133 | </div> |
| 134 | |
| 135 | <div class="form-group row"> |
| 136 | <label for="s3_secret_key" class="col-sm-3 col-form-label jb-label">{{ lang.t("Secret Key") }}</label> |
| 137 | <div class="col-sm-7"> |
| 138 | <input type="password" class="form-control" id="s3_secret_key" name="s3_secret_key" ng-model="saveData.options.secret_key"> |
| 139 | <p class="pd-3">{{ lang.t("Your S3 secret key.") }}</p> |
| 140 | </div> |
| 141 | </div> |
| 142 | |
| 143 | <div class="form-group row"> |
| 144 | <label for="s3_bucket" class="col-sm-3 col-form-label jb-label">{{ lang.t("Bucket") }}</label> |
| 145 | <div class="col-sm-7"> |
| 146 | <input class="form-control" type="text" id="s3_bucket" name="s3_bucket" ng-model="saveData.options.bucket"> |
| 147 | <p class="pd-3">{{ lang.t("Your S3 Bucket Name") }}</p> |
| 148 | </div> |
| 149 | </div> |
| 150 | |
| 151 | <div class="form-group row"> |
| 152 | <label for="s3_verifyssl" class="col-sm-3 col-form-label jb-label">{{ lang.t("Verify SSL") }}</label> |
| 153 | <div class="col-sm-7"> |
| 154 | <span class="switch-main"> |
| 155 | <label class="switch"> |
| 156 | <input id="s3_verifyssl" type="checkbox" ng-model="saveData.options.verifyssl" ng-checked="saveData.options.verifyssl == 1" ng-click="toggleState(saveData.options.verifyssl)"> |
| 157 | <span class="slider round"></span> |
| 158 | </label> |
| 159 | </span> |
| 160 | <p class="pd-3">{{ lang.t("Enable SSL certificate verification.") }}</p> |
| 161 | </div> |
| 162 | </div> |
| 163 | |
| 164 | <div class="form-group row"> |
| 165 | <label for="s3_retries" class="col-sm-3 col-form-label jb-label">{{ lang.t("Retries") }}</label> |
| 166 | <div class="col-sm-7"> |
| 167 | <input type="number" class="form-control" id="s3_retries" name="s3_retries" ng-model="saveData.options.retries"> |
| 168 | <p class="pd-3">{{ lang.t("Number of retry attempts.") }}</p> |
| 169 | </div> |
| 170 | </div> |
| 171 | |
| 172 | <div class="form-group row"> |
| 173 | <label for="s3_keepalive_timeout" class="col-sm-3 col-form-label jb-label">{{ lang.t("Keep-Alive Timeout") }}</label> |
| 174 | <div class="col-sm-7"> |
| 175 | <input type="number" class="form-control" id="s3_keepalive_timeout" name="s3_keepalive_timeout" ng-model="saveData.options.keepalive_timeout"> |
| 176 | <p class="pd-3">{{ lang.t("Timeout for keep-alive connections.") }}</p> |
| 177 | </div> |
| 178 | </div> |
| 179 | |
| 180 | <div class="form-group row"> |
| 181 | <label for="s3_keepalive_requests" class="col-sm-3 col-form-label jb-label">{{ lang.t("Keep-Alive Requests") }}</label> |
| 182 | <div class="col-sm-7"> |
| 183 | <input type="number" class="form-control" id="s3_keepalive_requests" name="s3_keepalive_requests" ng-model="saveData.options.keepalive_requests"> |
| 184 | <p class="pd-3">{{ lang.t("Number of keep-alive requests.") }}</p> |
| 185 | </div> |
| 186 | </div> |
| 187 | |
| 188 | </div> |