Advertisement
Guest User

Untitled

a guest
Jul 2nd, 2016
83
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 10.82 KB | None | 0 0
  1. {!! Form::open(array( 'class' => 'calculator', 'name' => 'calculator', 'files' => true, 'ng-app' => 'SaunaDoorCalc', 'ng-controller' => 'SaunaDoorCalcController')) !!}
  2. @if(Session::has('message'))
  3. <div class="alert alert-info">{{Session::get('message')}}</div>
  4. @endif
  5. @if(Session::has('errors'))
  6. <div class="alert alert-info">@foreach($errors->all() as $error){{ $error }}<br>@endforeach
  7. </div>
  8. @endif
  9.  
  10. <input name="calc" ng-model="calc" type="text" value="saunadoor" disabled>
  11.  
  12. <div class="row">
  13. <div class="col-xs-12 col-sm-6">Размер дверной коробки
  14. <div class='input' ng-repeat="a in sizeswitch">
  15. <input type="radio" name='radio' ng-model="$parent.selectedSizeSwitch" ng-value="a.label" id="@{{a.value}}">
  16. <label for="@{{a.value}}">@{{a.label}}</label>
  17. </div>
  18. </div>
  19.  
  20. <div ng-switch on="selectedSizeSwitch">
  21. <div class="col-xs-12 col-sm-6" ng-switch-when="Стандартный">Стандартные размеры дверной коробки (мм)
  22. <div class="custom-dropdown custom-dropdown--white">
  23. <select ng-model="$parent.selectedStandardSize" ng-options="b.label for b in standardsizes" class="standard_sizes custom-dropdown__select custom-dropdown__select--white"></select>
  24. </div>
  25. </div>
  26.  
  27. <div class="col-xs-12 col-sm-6" ng-switch-when="Ввести размер">Нестандартные размеры дверной коробки
  28. <div class='input'>
  29. <input name="door_size_b" id="input1" type="text" ng-model="$parent.DoorSizeB" ng-pattern="/^[0-9]{1,4}$/" placeholder=""><label for="door_size_b">Ширина дверной коробки, мм</label>
  30. <span ng-show="calculator.door_size_b.$error.pattern">Введите число от 0 до 9999мм</span>
  31. </div>
  32.  
  33. <div class='input'>
  34. <input name="door_size_h" id="door_size_h" type="text" ng-model="$parent.DoorSizeH" ng-pattern="pattern"><label for="door_size_h">Высота дверной коробки, мм</label>
  35. <span ng-show="calculator.door_size_b.$error.pattern">Введите число от 0 до 9999мм</span>
  36. </div>
  37. </div>
  38. </div>
  39.  
  40.  
  41. </div>
  42.  
  43. <div class="row">
  44. <div class="col-xs-12 col-sm-6"><span class="col-xs-6 col-sm-3">Стекло</span>
  45. <div class="custom-dropdown custom-dropdown--white">
  46. <select ng-model="selectedGlass" name="glass" ng-options="c.label for c in glass" class="custom-dropdown__select custom-dropdown__select--white"></select>
  47. </div>
  48. </div>
  49.  
  50. <div class="col-xs-12 col-sm-6"><span class="col-xs-6 col-sm-3">Материал коробки</span>
  51. <div class="custom-dropdown custom-dropdown--white">
  52. <select ng-model="selectedKorobka" name="korobka" ng-options="d.label for d in korobka" class="custom-dropdown__select custom-dropdown__select--white"></select>
  53. </div>
  54. </div>
  55. </div>
  56.  
  57.  
  58. <div class="row">
  59. <div class="col-xs-12 col-sm-6"><span class="col-xs-6 col-sm-3">Петли</span>
  60. <div class="custom-dropdown custom-dropdown--white">
  61. <select ng-model="selectedPetli" ng-options="e.label for e in petli" class="custom-dropdown__select custom-dropdown__select--white"></select>
  62. </div>
  63. </div>
  64.  
  65. <div class="col-xs-12 col-sm-6"><span class="col-xs-6 col-sm-3">Декор</span>
  66. <div class="custom-dropdown custom-dropdown--white">
  67. <select ng-model="selectedDekor" ng-options="f.label for f in dekor" class="custom-dropdown__select custom-dropdown__select--white"></select>
  68. </div>
  69. </div>
  70. </div>
  71.  
  72. <div class="row">
  73. <div class="col-xs-12 col-sm-6"><span class="col-xs-6 col-sm-3">Доставка</span>
  74. <div class="custom-dropdown custom-dropdown--white">
  75. <select ng-model="selectedDostavka" ng-options="g.label for g in dostavka" class="custom-dropdown__select custom-dropdown__select--white"></select>
  76. </div>
  77. </div>
  78.  
  79. <div class='input col-xs-12 col-sm-6'>
  80. <input type='checkbox' id='montazh' ng-model="montazh" ng-true-value="1500" ng-false-value="0"/>
  81. <label for="montazh">Монтаж</label>
  82. </div>
  83. </div>
  84.  
  85.  
  86. <table class="result table table-hover table-striped table-bordered table-condensed" ng-switch on="selectedSizeSwitch">
  87. <caption>Итоговая спецификация</caption>
  88. <tbody>
  89. <tr><td>Опция</td> <td>Значение</td> <td>Цена, руб</td></tr>
  90. <tr><td>Размер дверной коробки (мм):</td>
  91. <td ng-switch-default>@{{selectedSizeSwitch}}, @{{selectedStandardSize.label}}</td>
  92. <td ng-switch-when="Нестандартный">@{{selectedSizeSwitch}}, @{{DoorSizeB}}x@{{DoorSizeH}}</td>
  93. <td ng-switch-default>@{{selectedStandardSize.price}}</td>
  94. <td ng-switch-when="Нестандартный">@{{DoorSizeB*DoorSizeH*5000/1000000}}</td>
  95. </tr>
  96.  
  97. <tr><td>Стекло</td> <td>@{{selectedGlass.label}}</td> <td>@{{selectedGlass.price}}</td></tr>
  98. <tr><td>Материал дверной коробки:</td> <td>@{{selectedKorobka.label}}</td> <td>@{{selectedKorobka.price}}</td></tr>
  99. <tr><td>Петли:</td> <td>@{{selectedPetli.label}}</td> <td>@{{selectedPetli.price}}</td></tr>
  100. <tr><td>Декор:</td> <td>@{{selectedDekor.label}}</td> <td>@{{selectedDekor.price}}</td></tr>
  101. <tr><td>Доставка:</td> <td>@{{selectedDostavka.label}}</td> <td>@{{selectedDostavka.price}}</td></tr>
  102. <tr><td>Монтаж:</td> <td>@{{montazh.label}}</td> <td>@{{montazh}}</td></tr>
  103.  
  104. <tr><td>Стоимость двери:</td> <td></td>
  105. <td ng-switch-default>@{{selectedStandardSize.price + selectedGlass.price + selectedKorobka.price + selectedPetli.price + selectedDekor.price + selectedDostavka.price + montazh}}</td>
  106. <td ng-switch-when="Нестандартный">@{{DoorSizeB*DoorSizeH*5000/1000000 + selectedGlass.price + selectedKorobka.price + selectedPetli.price + selectedDekor.price + selectedDostavka.price + montazh}}</td>
  107. </tr>
  108. </tbody>
  109. </table>
  110.  
  111.  
  112. <div class="col-sm-6">
  113. <div class="input">
  114. <input id="name" name="name" ng-model="name" type="text" required>
  115. <label for="name">Ваше имя *</label>
  116. </div>
  117. <div class="input">
  118. <input id="phone" name="tel" ng-model="tel" type="text" required>
  119. <label for="phone">Номер телефона *</label>
  120. </div>
  121. <div class="input">
  122. <input id="email" name="email" ng-model="email" type="email" required>
  123. <label for="email">Адрес электронной почты *</label>
  124. </div>
  125. </div>
  126.  
  127. <div class="col-sm-6">
  128. <div class="input">
  129. <textarea id="message" name="message" ng-model="message"></textarea>
  130. <label for="message">Комментарии</label>
  131. </div>
  132. </div>
  133.  
  134.  
  135. <div class="footer col-xs-12 col-sm-6">
  136. <button type="submit" class="btn btn-primary pull-right" ng-click="submit(calculator.$valid)">Отправить заказ</button>
  137. </div>
  138.  
  139. {!! Form::close() !!}
  140.  
  141. angular
  142. .module('SaunaDoorCalc',[])
  143. .controller('SaunaDoorCalcController', function($scope, $http) {
  144.  
  145. $scope.outerScope = {};
  146. $scope.data = {};
  147.  
  148. $scope.sizeswitch = [
  149. { label: 'Стандартный', value: 'standard'},
  150. { label: 'Ввести размер', value: 'special'}
  151. ];
  152. $scope.selectedSizeSwitch = 'Стандартный'; // Default is Стандартный
  153.  
  154. $scope.standardsizes = [
  155. { label: '585х1880', price:5600 },
  156. { label: '685x1880', price:3600 },
  157. { label: '685x1980', price:5600 },
  158. { label: '685x2080', price:5600 },
  159. { label: '685x2180', price:6600 },
  160. { label: '785x1880', price:5600 },
  161. { label: '785x1980', price:5600 },
  162. { label: '785x2080', price:5600 },
  163. { label: '785x2180', price:6600 }
  164. ];
  165. $scope.selectedStandardSize = $scope.standardsizes[1];
  166. // Default is 685x1880 - second array element. First element index is 0.
  167.  
  168. $scope.glass = [
  169. { label: 'Прозрачное (стандарт)', price:0 },
  170. { label: 'Матовое (Matelux)', price:1000 },
  171. { label: 'Бронза (Bronze)', price:1500 },
  172. { label: 'Матовая Бронза (Matelux Bronze)', price:2000 },
  173. { label: 'Черное', price:4000 }
  174. ];
  175. $scope.selectedGlass = $scope.glass[0];
  176.  
  177. $scope.korobka = [
  178. { label: 'Липа (стандарт)', price:1000 },
  179. { label: 'Лиственница', price:2000 },
  180. { label: 'Бук', price:3000 },
  181. { label: 'Дуб', price:6000 }
  182. ];
  183. $scope.selectedKorobka = $scope.korobka[0];
  184.  
  185. $scope.petli = [
  186. { label: 'Хром (стандарт)', price:900 },
  187. { label: 'Бронза', price:1900 },
  188. { label: 'Золото', price:2000 }
  189. ];
  190. $scope.selectedPetli = $scope.petli[0];
  191.  
  192. $scope.dekor = [
  193. { label: 'Нет', price:0 },
  194. { label: 'Пескоструйный рисунок', price:1000 },
  195. { label: 'Лазерная гравировка', price:1500 },
  196. { label: 'Фотопечать', price:2000 },
  197. { label: 'Пескоструйный рисунок с фьюзингом', price:3000 }
  198. ];
  199. $scope.selectedDekor = $scope.dekor[0];
  200.  
  201. $scope.dostavka = [
  202. { label: 'Нет', price:0 },
  203. { label: 'в пределах МКАД', price:1500 },
  204. { label: 'за МКАД', price:1500 }
  205. ];
  206. $scope.selectedDostavka = $scope.dostavka[0];
  207. $scope.montazh = 0;
  208.  
  209. $scope.url = 'http://steklo.dev/izdeliya-iz-stekla/steklyannye-dveri/steklyannye-dveri-dlya-sauny';
  210.  
  211. $scope.submit = function(isValid) {
  212. if (isValid) {
  213. $http.post($scope.url, {"name": $scope.name, "email": $scope.email, "message": $scope.message, "dostavka1": $scope.dostavka, "dostavka2": $scope.selectedDostavka }).
  214. success(function(data, status) {
  215. console.log(data);
  216. $scope.status = status;
  217. $scope.data = data;
  218. $scope.result = data;
  219. })
  220. }else{
  221.  
  222. alert('Form is not valid');
  223. }
  224.  
  225. }
  226.  
  227. });
  228.  
  229. Route::get('izdeliya-iz-stekla/{cat}/{item}', 'StekloController@getItem');
  230. Route::post('izdeliya-iz-stekla/{cat}/{item}', ['as' => 'order', 'uses' => 'StekloController@order']);
  231.  
  232. public function order(CalculatorRequest $request)
  233. {
  234. $input = Input::json();
  235. return Redirect::back()->with( dd($input) );
  236. }
  237.  
  238. ParameterBag {#211 ▼
  239. #parameters: []
  240. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement