1+ <template >
2+ <div >
3+ <div class =" form-group" >
4+ <label for =" id_do_token" >
5+ Enter your API token. The token must have read and write permissions
6+ (<a href =" https://cloud.digitalocean.com/settings/api/tokens" target =" _blank" rel =" noopener noreferrer" >https://cloud.digitalocean.com/settings/api/tokens</a >):
7+ </label >
8+ <input
9+ type =" text"
10+ class =" form-control"
11+ id =" id_do_token"
12+ name =" do_token"
13+ v-model =" do_token"
14+ @blur =" load_do_regions"
15+ />
16+ </div >
17+ <div class =" form-group" >
18+ <label
19+ v-if =" do_regions.length > 0"
20+ for =" id_region"
21+ >What region should the server be located in?</label >
22+ <label
23+ v-if =" do_regions.length === 0"
24+ for =" id_region"
25+ >Please enter API key above to select region</label >
26+ <label v-if =" do_region_loading" for =" id_region" >Loading regions...</label >
27+ <select
28+ name =" region"
29+ id =" id_region"
30+ class =" form-control"
31+ v-model =" do_region"
32+ v-bind:disabled =" do_region_loading"
33+ >
34+ <option value disabled >Select region</option >
35+ <option
36+ v-for =" (region, i) in do_regions"
37+ v-bind:key =" region.slug"
38+ v-bind:value =" region.slug"
39+ >{{region.name}}</option >
40+ </select >
41+ </div >
42+ <button @click =" submit" v-bind:disabled =" !do_region" class =" btn btn-primary" type =" button" >Next</button >
43+ </div >
44+ </template >
45+
46+ <script >
47+ module .exports = {
48+ data : function () {
49+ return {
50+ do_token: null ,
51+ do_region: null ,
52+ do_regions: [],
53+ do_region_loading: false
54+ }
55+ },
56+ methods: {
57+ load_do_regions : function () {
58+ this .do_region_loading = true ;
59+ fetch (" /do/regions" , {
60+ method: " POST" ,
61+ headers: {
62+ " Content-Type" : " application/json"
63+ },
64+ body: JSON .stringify ({ token: this .do_token })
65+ })
66+ .then (r => r .json ())
67+ .then (r => {
68+ this .do_regions = r .regions ;
69+ })
70+ .finally (() => {
71+ this .do_region_loading = false ;
72+ });
73+ },
74+ submit () {
75+ this .$emit (' submit' , {
76+ do_token: this .do_token ,
77+ region: this .do_region
78+ })
79+ }
80+ }
81+ };
82+ </script >
0 commit comments