| OLD | NEW |
| 1 // Copyright (c) 2012, 2015 the Dart project authors. | 1 // Copyright (c) 2012, 2015 the Dart project authors. |
| 2 // Please see the AUTHORS file for details. All rights reserved. | 2 // Please see the AUTHORS file for details. All rights reserved. |
| 3 // Use of this source code is governed by a BSD-style license that can be | 3 // Use of this source code is governed by a BSD-style license that can be |
| 4 // found in the LICENSE file. | 4 // found in the LICENSE file. |
| 5 | 5 |
| 6 import 'dart:async'; | 6 import 'dart:async'; |
| 7 import 'dart:html'; | 7 import 'dart:html'; |
| 8 | 8 |
| 9 import 'package:http/browser_client.dart'; | 9 import 'package:http/browser_client.dart'; |
| 10 import 'package:server_code_lab/client/piratesapi.dart'; | 10 import 'package:server_code_lab/client/piratesapi.dart'; |
| (...skipping 81 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 92 ..text = 'Arrr! Write yer name!'; | 92 ..text = 'Arrr! Write yer name!'; |
| 93 storeButton..disabled = false; | 93 storeButton..disabled = false; |
| 94 } | 94 } |
| 95 } | 95 } |
| 96 | 96 |
| 97 Future storeBadge(Event e) async { | 97 Future storeBadge(Event e) async { |
| 98 var pirateName = badgeNameElement.text; | 98 var pirateName = badgeNameElement.text; |
| 99 if (pirateName == null || pirateName.isEmpty) return null; | 99 if (pirateName == null || pirateName.isEmpty) return null; |
| 100 var pirate = new Pirate.fromString(pirateName); | 100 var pirate = new Pirate.fromString(pirateName); |
| 101 try { | 101 try { |
| 102 await _api.addPirate(pirate); | 102 await _api.hirePirate(pirate); |
| 103 } catch (error) { | 103 } catch (error) { |
| 104 window.alert(error.message); | 104 window.alert(error.message); |
| 105 } | 105 } |
| 106 new Future.delayed(new Duration(milliseconds: 300), () { | 106 new Future.delayed(new Duration(milliseconds: 300), () { |
| 107 storeButton | 107 storeButton |
| 108 ..disabled = true | 108 ..disabled = true |
| 109 ..text = 'Pirate hired!'; | 109 ..text = 'Pirate hired!'; |
| 110 }); | 110 }); |
| 111 refreshList(); | 111 refreshList(); |
| 112 } | 112 } |
| 113 | 113 |
| 114 Future selectListener(Event e) async { | 114 Future selectListener(Event e) async { |
| 115 fireButton.disabled = false; | 115 fireButton.disabled = false; |
| 116 } | 116 } |
| 117 | 117 |
| 118 Future removeBadge(Event e) async { | 118 Future removeBadge(Event e) async { |
| 119 var idx = pirateList.selectedIndex; | 119 var idx = pirateList.selectedIndex; |
| 120 if (idx < 0 || idx >= pirateList.options.length) return null; | 120 if (idx < 0 || idx >= pirateList.options.length) return null; |
| 121 var option = pirateList.options.elementAt(idx); | 121 var option = pirateList.options.elementAt(idx); |
| 122 var pirate = new Pirate.fromString(option.label); | 122 var pirate = new Pirate.fromString(option.label); |
| 123 try { | 123 try { |
| 124 await _api.killPirate(pirate.name, pirate.appellation); | 124 await _api.firePirate(pirate.name, pirate.appellation); |
| 125 } catch (error) { | 125 } catch (error) { |
| 126 window.alert(error.message); | 126 window.alert(error.message); |
| 127 } | 127 } |
| 128 new Future.delayed(new Duration(milliseconds: 300), () { | 128 new Future.delayed(new Duration(milliseconds: 300), () { |
| 129 fireButton.disabled = true; | 129 fireButton.disabled = true; |
| 130 }); | 130 }); |
| 131 refreshList(); | 131 refreshList(); |
| 132 } | 132 } |
| 133 | 133 |
| 134 Future removeAllBadges(Event e) async { | 134 Future removeAllBadges(Event e) async { |
| 135 for (var option in pirateList.options) { | 135 for (var option in pirateList.options) { |
| 136 var pirate = new Pirate.fromString(option.label); | 136 var pirate = new Pirate.fromString(option.label); |
| 137 try { | 137 try { |
| 138 await _api.killPirate(pirate.name, pirate.appellation); | 138 await _api.firePirate(pirate.name, pirate.appellation); |
| 139 } catch (error) { | 139 } catch (error) { |
| 140 // ignoring errors. | 140 // ignoring errors. |
| 141 } | 141 } |
| 142 } | 142 } |
| 143 new Future.delayed(new Duration(milliseconds: 300), () { | 143 new Future.delayed(new Duration(milliseconds: 300), () { |
| 144 fireButton.disabled = true; | 144 fireButton.disabled = true; |
| 145 slayButton.disabled = true; | 145 slayButton.disabled = true; |
| 146 }); | 146 }); |
| 147 refreshList(); | 147 refreshList(); |
| 148 } | 148 } |
| 149 | 149 |
| 150 void generateBadge(Event e) { | 150 void generateBadge(Event e) { |
| 151 var pirate = _shanghaier.shanghaiAPirate(); | 151 var pirate = _shanghaier.shanghaiAPirate(); |
| 152 setBadgeName(pirate); | 152 setBadgeName(pirate); |
| 153 } | 153 } |
| 154 | 154 |
| 155 void setBadgeName(Pirate pirate) { | 155 void setBadgeName(Pirate pirate) { |
| 156 if (pirate == null || pirate.toString().isEmpty) { | 156 if (pirate == null || pirate.toString().isEmpty) { |
| 157 badgeNameElement.text = ''; | 157 badgeNameElement.text = ''; |
| 158 storeButton.disabled = true; | 158 storeButton.disabled = true; |
| 159 return; | 159 return; |
| 160 } | 160 } |
| 161 badgeNameElement.text = pirate.toString(); | 161 badgeNameElement.text = pirate.toString(); |
| 162 window.localStorage[TREASURE_KEY] = pirate.jsonString; | 162 window.localStorage[TREASURE_KEY] = pirate.toString(); |
| 163 storeButton | 163 storeButton |
| 164 ..disabled = false | 164 ..disabled = false |
| 165 ..text = 'Hire pirate!'; | 165 ..text = 'Hire pirate!'; |
| 166 } | 166 } |
| 167 | 167 |
| 168 Pirate getBadgeNameFromStorage() { | 168 Pirate getBadgeNameFromStorage() { |
| 169 String storedName = window.localStorage[TREASURE_KEY]; | 169 String storedName = window.localStorage[TREASURE_KEY]; |
| 170 if (storedName != null) { | 170 if (storedName != null) { |
| 171 return new Pirate.fromJSON(storedName); | 171 return new Pirate.fromString(storedName); |
| 172 } else { | 172 } else { |
| 173 return null; | 173 return null; |
| 174 } | 174 } |
| 175 } | 175 } |
| 176 | 176 |
| 177 void addRippleEffect(MouseEvent e) { | 177 void addRippleEffect(MouseEvent e) { |
| 178 var button = e.target as ButtonElement; | 178 var button = e.target as ButtonElement; |
| 179 var ripple = button.querySelector(".ripple"); | 179 var ripple = button.querySelector(".ripple"); |
| 180 | 180 |
| 181 // we need to delete existing ripple element | 181 // we need to delete existing ripple element |
| 182 if (ripple != null) { | 182 if (ripple != null) { |
| 183 ripple.remove(); | 183 ripple.remove(); |
| 184 } | 184 } |
| 185 | 185 |
| 186 var x = e.client.x - button.getBoundingClientRect().left; | 186 var x = e.client.x - button.getBoundingClientRect().left; |
| 187 var y = e.client.y - button.getBoundingClientRect().top; | 187 var y = e.client.y - button.getBoundingClientRect().top; |
| 188 | 188 |
| 189 ripple = new SpanElement() | 189 ripple = new SpanElement() |
| 190 ..classes.add("ripple") | 190 ..classes.add("ripple") |
| 191 ..style.left = "${x}px" | 191 ..style.left = "${x}px" |
| 192 ..style.top = "${y}px" | 192 ..style.top = "${y}px" |
| 193 ..classes.add("show"); | 193 ..classes.add("show"); |
| 194 | 194 |
| 195 button.append(ripple); | 195 button.append(ripple); |
| 196 } | 196 } |
| OLD | NEW |