Commit 0fc3bf10d06abc4648ab8ed935a03500874159ec
1 parent
51893ef9
Quickbuy modal
Showing
6 changed files
with
264 additions
and
171 deletions
Show diff stats
common/models/Basket.php
frontend/controllers/OrderController.php
1 | 1 | <?php |
2 | - | |
3 | -namespace frontend\controllers; | |
4 | - | |
5 | - | |
6 | -use common\models\Customer; | |
7 | -use common\models\OrdersProducts; | |
8 | -use common\widgets\Mailer; | |
9 | -use Yii; | |
10 | -use yii\base\InvalidConfigException; | |
11 | -use yii\base\InvalidParamException; | |
12 | -use yii\helpers\ArrayHelper; | |
13 | -use yii\web\Controller; | |
14 | -use common\models\Basket; | |
15 | -use common\modules\product\models\ProductVariant; | |
16 | -use common\models\Orders; | |
17 | - | |
18 | - | |
19 | -class OrderController extends Controller | |
20 | -{ | |
21 | - | |
22 | - | |
23 | - public function actionIndex() | |
24 | - { | |
25 | - $basket = \Yii::$app->basket; | |
26 | - $data = $basket->getData(); | |
27 | - $models = $basket->findModels(array_keys($data)); | |
28 | - return $this->render('index', [ | |
29 | - 'models' => $models, | |
30 | - 'basket' => $basket, | |
31 | - ]); | |
32 | - } | |
33 | - | |
34 | - | |
35 | - /** | |
36 | - * | |
37 | - * @return string | |
38 | - */ | |
39 | - public function actionSave() | |
2 | + | |
3 | + namespace frontend\controllers; | |
4 | + | |
5 | + use common\models\Customer; | |
6 | + use common\models\OrdersProducts; | |
7 | + use common\widgets\Mailer; | |
8 | + use Yii; | |
9 | + use yii\base\InvalidConfigException; | |
10 | + use yii\base\InvalidParamException; | |
11 | + use yii\helpers\ArrayHelper; | |
12 | + use yii\web\Controller; | |
13 | + use common\models\Basket; | |
14 | + use common\modules\product\models\ProductVariant; | |
15 | + use common\models\Orders; | |
16 | + | |
17 | + class OrderController extends Controller | |
40 | 18 | { |
41 | - $modelOrder = new Orders; | |
19 | + | |
20 | + public function actionIndex() | |
21 | + { | |
22 | + $basket = \Yii::$app->basket; | |
23 | + $data = $basket->getData(); | |
24 | + $models = $basket->findModels(array_keys($data)); | |
25 | + return $this->render('index', [ | |
26 | + 'models' => $models, | |
27 | + 'basket' => $basket, | |
28 | + ]); | |
29 | + } | |
30 | + | |
42 | 31 | /** |
43 | - * @var $basket Basket | |
32 | + * @return string | |
44 | 33 | */ |
45 | - $basket = \Yii::$app->basket; | |
46 | - $productV = $basket->getData(); | |
47 | - if(!empty($productV) && $modelOrder->load(Yii::$app->request->post())&& $modelOrder->save()){ | |
48 | - foreach ($productV as $index=>$row) { | |
49 | - $modelOrdersProducts = new OrdersProducts(); | |
50 | - $mod_id = $index; | |
51 | - $product = ProductVariant::findOne($mod_id); | |
52 | - /** | |
53 | - * Проверяем товар на наличие | |
54 | - */ | |
55 | - if(!$product->stock > 0 || !$product->price > 0 ){ | |
56 | - /** | |
57 | - * Добавляем сообщение об ошибке | |
58 | - */ | |
59 | - \Yii::$app->getSession()->setFlash('error', 'К сожалению товара '.$product->name . ' нет в наличии'); | |
60 | - $basket->delete($product->product_variant_id); | |
61 | - unset($productV[$index]); | |
62 | - }else { | |
34 | + public function actionSave() | |
35 | + { | |
36 | + $modelOrder = new Orders; | |
37 | + /** | |
38 | + * @var $basket Basket | |
39 | + */ | |
40 | + $basket = \Yii::$app->basket; | |
41 | + $productV = $basket->getData(); | |
42 | + if(!empty( $productV ) && $modelOrder->load(Yii::$app->request->post()) && $modelOrder->save()) { | |
43 | + foreach($productV as $index => $row) { | |
44 | + $modelOrdersProducts = new OrdersProducts(); | |
45 | + $mod_id = $index; | |
46 | + $product = ProductVariant::findOne($mod_id); | |
63 | 47 | /** |
64 | - * Удаляем товар с массива и сохраняем в заказ | |
48 | + * Проверяем товар на наличие | |
65 | 49 | */ |
66 | - $modelOrdersProducts->order_id = $modelOrder->id; | |
67 | - $modelOrdersProducts->product_name = $product->product->name; | |
68 | - $modelOrdersProducts->name = $product->name; | |
69 | - $modelOrdersProducts->price = $productV[$index]['price']; | |
70 | - $modelOrdersProducts->count= $productV[$index]['count']; | |
71 | - $modelOrdersProducts->sum_cost = $productV[$index]['price'] *$productV[$index]['count'] ; | |
72 | - $modelOrdersProducts->mod_id = $mod_id; | |
73 | - $modelOrdersProducts->sku = $product->sku; | |
74 | - $modelOrdersProducts->validate(); | |
75 | - $modelOrdersProducts->save(); | |
76 | - $productV[$index] = ArrayHelper::toArray($modelOrdersProducts); | |
77 | - $productV[$index]['img'] = \common\components\artboximage\ArtboxImageHelper::getImageSrc($product->image->imageUrl, 'list'); | |
50 | + if(!$product->stock > 0 || !$product->price > 0) { | |
51 | + /** | |
52 | + * Добавляем сообщение об ошибке | |
53 | + */ | |
54 | + \Yii::$app->getSession() | |
55 | + ->setFlash('error', 'К сожалению товара ' . $product->name . ' нет в наличии'); | |
56 | + $basket->delete($product->product_variant_id); | |
57 | + unset( $productV[ $index ] ); | |
58 | + } else { | |
59 | + /** | |
60 | + * Удаляем товар с массива и сохраняем в заказ | |
61 | + */ | |
62 | + $modelOrdersProducts->order_id = $modelOrder->id; | |
63 | + $modelOrdersProducts->product_name = $product->product->name; | |
64 | + $modelOrdersProducts->name = $product->name; | |
65 | + $modelOrdersProducts->price = $productV[ $index ][ 'price' ]; | |
66 | + $modelOrdersProducts->count = $productV[ $index ][ 'count' ]; | |
67 | + $modelOrdersProducts->sum_cost = $productV[ $index ][ 'price' ] * $productV[ $index ][ 'count' ]; | |
68 | + $modelOrdersProducts->mod_id = $mod_id; | |
69 | + $modelOrdersProducts->sku = $product->sku; | |
70 | + $modelOrdersProducts->validate(); | |
71 | + $modelOrdersProducts->save(); | |
72 | + $productV[ $index ] = ArrayHelper::toArray($modelOrdersProducts); | |
73 | + $productV[ $index ][ 'img' ] = \common\components\artboximage\ArtboxImageHelper::getImageSrc($product->image->imageUrl, 'list'); | |
74 | + } | |
78 | 75 | } |
79 | - } | |
80 | - /** | |
81 | - * Сохраняем заказ | |
82 | - */ | |
83 | - if(!Yii::$app->user->id && !empty($modelOrder->email)){ | |
84 | - $modelUser = new Customer(); | |
85 | - $modelUser->role = 'person'; | |
86 | - $modelUser->username = $modelOrder->email; | |
87 | - $modelUser->name = $modelOrder->name; | |
88 | - $modelUser->phone = $modelOrder->phone; | |
89 | - $modelUser->password = Yii::$app->getSecurity()->generateRandomString(10); | |
90 | - $modelUser->group_id = 2; | |
91 | - $modelUser->save(); | |
92 | - } | |
93 | - $order = clone $modelOrder; | |
94 | - /** | |
95 | - * Чистим сессию корзины | |
96 | - */ | |
97 | - $modelOrder->clearBasket(); | |
98 | - Mailer::widget( | |
99 | - ['type' => 'order', | |
100 | - 'subject'=> 'Спасибо за покупку', | |
101 | - 'email' => $modelOrder->email, | |
102 | - 'params' => [ | |
103 | - 'order' => $order, | |
76 | + /** | |
77 | + * Сохраняем заказ | |
78 | + */ | |
79 | + if(!Yii::$app->user->id && !empty( $modelOrder->email )) { | |
80 | + $modelUser = new Customer(); | |
81 | + $modelUser->role = 'person'; | |
82 | + $modelUser->username = $modelOrder->email; | |
83 | + $modelUser->name = $modelOrder->name; | |
84 | + $modelUser->phone = $modelOrder->phone; | |
85 | + $modelUser->password = Yii::$app->getSecurity() | |
86 | + ->generateRandomString(10); | |
87 | + $modelUser->group_id = 2; | |
88 | + $modelUser->save(); | |
89 | + } | |
90 | + $order = clone $modelOrder; | |
91 | + /** | |
92 | + * Чистим сессию корзины | |
93 | + */ | |
94 | + $modelOrder->clearBasket(); | |
95 | + Mailer::widget([ | |
96 | + 'type' => 'order', | |
97 | + 'subject' => 'Спасибо за покупку', | |
98 | + 'email' => $modelOrder->email, | |
99 | + 'params' => [ | |
100 | + 'order' => $order, | |
104 | 101 | 'variants' => $productV, |
105 | - ] | |
102 | + ], | |
106 | 103 | ]); |
107 | - //$text = "# zakaz: ". $order->id .". V blijayshee vremya menedjer svyajetsya s Vami. (044) 303 90 15"; | |
108 | - //Yii::$app->sms->send($order->phone, $text); | |
109 | - Yii::$app->session['order_data']= ['order' => $order,'variants'=>$productV]; | |
110 | - return $this->redirect(['order/success']); | |
104 | + //$text = "# zakaz: ". $order->id .". V blijayshee vremya menedjer svyajetsya s Vami. (044) 303 90 15"; | |
105 | + //Yii::$app->sms->send($order->phone, $text); | |
106 | + Yii::$app->session[ 'order_data' ] = [ 'order' => $order, | |
107 | + 'variants' => $productV, | |
108 | + ]; | |
109 | + return $this->redirect([ 'order/success' ]); | |
110 | + } | |
111 | + $data = $basket->getData(); | |
112 | + $models = $basket->findModels(array_keys($data)); | |
113 | + return $this->render('index', [ | |
114 | + 'models' => $models, | |
115 | + 'basket' => $basket, | |
116 | + ]); | |
111 | 117 | } |
112 | - $data = $basket->getData(); | |
113 | - $models = $basket->findModels(array_keys($data)); | |
114 | - return $this->render('index', [ | |
115 | - 'models' => $models, | |
116 | - 'basket' => $basket | |
117 | - ]); | |
118 | - } | |
119 | - | |
120 | - public function actionSuccess(){ | |
121 | - return $this->render('success'); | |
122 | - } | |
123 | - | |
124 | - public function actionQuick() { | |
125 | - $response = \Yii::$app->response; | |
126 | - $request = \Yii::$app->request; | |
127 | - $response->format = $response::FORMAT_JSON; | |
128 | - $product_variant_id = (int) $request->post('product_variant_id'); | |
129 | - $orders = new Orders([ | |
130 | - 'scenario' => Orders::SCENARIO_QUICK, | |
131 | - 'name' => 'Покупка в 1 клик', | |
132 | - ]); | |
133 | - if(!empty($product_variant_id)) { | |
118 | + | |
119 | + public function actionSuccess() | |
120 | + { | |
121 | + return $this->render('success'); | |
122 | + } | |
123 | + | |
124 | + public function actionQuick() | |
125 | + { | |
126 | + $response = \Yii::$app->response; | |
127 | + $request = \Yii::$app->request; | |
128 | + $response->format = $response::FORMAT_JSON; | |
129 | + $product_variant_id = (int) $request->post('product_variant_id'); | |
130 | + $orders = new Orders([ | |
131 | + 'scenario' => Orders::SCENARIO_QUICK, | |
132 | + 'name' => 'Покупка в 1 клик', | |
133 | + ]); | |
134 | + if(!empty( $product_variant_id )) { | |
135 | + /** | |
136 | + * @var ProductVariant $product_variant | |
137 | + */ | |
138 | + $product_variant = ProductVariant::findOne($product_variant_id); | |
139 | + } else { | |
140 | + throw new InvalidParamException('Не указан товар'); | |
141 | + } | |
142 | + if(!empty( $product_variant ) && $orders->load($request->post()) && $orders->save()) { | |
143 | + if($product_variant->stock <= 0 || $product_variant->price <= 0) { | |
144 | + $orders->delete(); | |
145 | + return [ | |
146 | + 'error' => 'К сожалению товара ' . $product_variant->name . ' нет в наличии', | |
147 | + ]; | |
148 | + } else { | |
149 | + $order_product = new OrdersProducts([ | |
150 | + 'order_id' => $orders->id, | |
151 | + 'product_name' => $product_variant->product->name, | |
152 | + 'name' => $product_variant->name, | |
153 | + 'price' => $product_variant->price, | |
154 | + 'count' => 1, | |
155 | + 'sum_cost' => $product_variant->price, | |
156 | + 'mod_id' => $product_variant->product_variant_id, | |
157 | + 'sku' => $product_variant->sku, | |
158 | + ]); | |
159 | + $order_product->save(); | |
160 | + return [ | |
161 | + 'result' => 'Спасибо за заказ! Наши менеджеры свяжутся с Вами в ближайшее время.', | |
162 | + ]; | |
163 | + } | |
164 | + } else { | |
165 | + throw new InvalidConfigException('Товар не найден или не удалось загрузить данные о покупателе.'); | |
166 | + } | |
167 | + } | |
168 | + | |
169 | + public function actionQuickBasket() | |
170 | + { | |
171 | + $response = \Yii::$app->response; | |
172 | + $request = \Yii::$app->request; | |
173 | + $response->format = $response::FORMAT_JSON; | |
134 | 174 | /** |
135 | - * @var ProductVariant $product_variant | |
175 | + * @var array $data | |
136 | 176 | */ |
137 | - $product_variant = ProductVariant::findOne($product_variant_id); | |
138 | - } else { | |
139 | - throw new InvalidParamException('Не указан товар'); | |
140 | - } | |
141 | - if(!empty($product_variant) && $orders->load($request->post()) && $orders->save()) { | |
142 | - if($product_variant->stock <= 0 || $product_variant->price <= 0) { | |
143 | - $orders->delete(); | |
144 | - return [ | |
145 | - 'error' => 'К сожалению товара '.$product_variant->name.' нет в наличии', | |
146 | - ]; | |
177 | + $data = \Yii::$app->basket->getData(); | |
178 | + $orders = new Orders([ | |
179 | + 'scenario' => Orders::SCENARIO_QUICK, | |
180 | + 'name' => 'Покупка в 1 клик', | |
181 | + ]); | |
182 | + if(!empty( $data )) { | |
183 | + /** | |
184 | + * @var ProductVariant[] $product_variants | |
185 | + * @var OrdersProducts[] $order_products | |
186 | + */ | |
187 | + $product_variants = []; | |
188 | + $order_products = []; | |
189 | + foreach($data as $product_variant_id => $item) { | |
190 | + $product_variant = ProductVariant::findOne($product_variant_id); | |
191 | + if(!empty($product_variant) && $product_variant->stock > 0 && $product_variant->price > 0) { | |
192 | + $product_variants[$product_variant_id] = $product_variant; | |
193 | + $order_products[$product_variant_id] = new OrdersProducts([ | |
194 | + 'product_name' => $product_variant->product->name, | |
195 | + 'name' => $product_variant->name, | |
196 | + 'price' => $product_variant->price, | |
197 | + 'count' => $item['count'], | |
198 | + 'sum_cost' => $item['count'] * $product_variant->price, | |
199 | + 'mod_id' => $product_variant->product_variant_id, | |
200 | + 'sku' => $product_variant->sku, | |
201 | + ]); | |
202 | + } | |
203 | + } | |
147 | 204 | } else { |
148 | - $order_product = new OrdersProducts([ | |
149 | - 'order_id' => $orders->id, | |
150 | - 'product_name' => $product_variant->product->name, | |
151 | - 'name' => $product_variant->name, | |
152 | - 'price' => $product_variant->price, | |
153 | - 'count' => 1, | |
154 | - 'sum_cost' => $product_variant->price, | |
155 | - 'mod_id' => $product_variant->product_variant_id, | |
156 | - 'sku' => $product_variant->sku, | |
157 | - ]); | |
158 | - $order_product->save(); | |
205 | + throw new InvalidParamException('Не указан товар'); | |
206 | + } | |
207 | + if(!empty( $order_products ) && $orders->load($request->post()) && $orders->save()) { | |
208 | + foreach($order_products as $order_product) { | |
209 | + $order_product->order_id = $orders->id; | |
210 | + $order_product->save(); | |
211 | + } | |
212 | + \Yii::$app->basket->clear(); | |
159 | 213 | return [ |
160 | - 'result' => 'Спасибо за заказ! Наши менеджеры свяжутся с Вами в ближайшее время.' | |
214 | + 'result' => 'Спасибо за заказ! Наши менеджеры свяжутся с Вами в ближайшее время.', | |
161 | 215 | ]; |
216 | + } else { | |
217 | + throw new InvalidConfigException('Товар не найден или не удалось загрузить данные о покупателе.'); | |
162 | 218 | } |
163 | - } else { | |
164 | - throw new InvalidConfigException('Товар не найден или не удалось загрузить данные о покупателе.'); | |
165 | 219 | } |
166 | - | |
167 | 220 | } |
168 | - | |
169 | -} | ... | ... |
frontend/views/basket/modal_items.php
1 | 1 | <?php |
2 | 2 | use common\models\Basket; |
3 | + use common\models\Orders; | |
3 | 4 | use common\modules\product\models\ProductVariant; |
4 | 5 | use yii\helpers\Html; |
5 | -use yii\helpers\Url; | |
6 | -use yii\web\View; | |
6 | + use yii\helpers\Url; | |
7 | + use yii\web\View; | |
8 | + use yii\widgets\ActiveForm; | |
9 | + use yii\widgets\MaskedInput; | |
7 | 10 | |
8 | 11 | /** |
9 | 12 | * @var View $this |
... | ... | @@ -25,11 +28,8 @@ use yii\web\View; |
25 | 28 | <span class="cart_total"><?php echo $basket->getSum(); ?></span><span class="currency"> <!--грн.--></span> |
26 | 29 | </div> |
27 | 30 | </div> |
28 | - | |
29 | 31 | </div> |
30 | - | |
31 | 32 | <div class="modal-body"> |
32 | - | |
33 | 33 | <table class="tovar"> |
34 | 34 | <tbody> |
35 | 35 | <?php |
... | ... | @@ -38,19 +38,19 @@ use yii\web\View; |
38 | 38 | <tr data-id="<?php echo $model->product_variant_id; ?>"> |
39 | 39 | <td class="left"> |
40 | 40 | <?php |
41 | - echo Html::img($model->getImageUrl()); | |
41 | + echo Html::img($model->getImageUrl()); | |
42 | 42 | ?> |
43 | 43 | </td> |
44 | 44 | <td class="right"> |
45 | - <div class="title"><?php echo $model->getFullname();?></div> | |
45 | + <div class="title"><?php echo $model->getFullname(); ?></div> | |
46 | 46 | <div class="count_choise"> |
47 | 47 | <span class="minus"></span> |
48 | - <input type="text" name="count" value="<?php echo $basket->getItem($model->product_variant_id)['count'];?>" class="prod_count"> | |
48 | + <input type="text" name="count" value="<?php echo $basket->getItem($model->product_variant_id)[ 'count' ]; ?>" class="prod_count"> | |
49 | 49 | <span class="plus"></span> |
50 | 50 | <span class="total_summ">= <span class="total_prod"> |
51 | 51 | <?php |
52 | 52 | $item = $basket->getItem($model->product_variant_id); |
53 | - echo $item['count'] * $item['price']; | |
53 | + echo $item[ 'count' ] * $item[ 'price' ]; | |
54 | 54 | ?> |
55 | 55 | </span><span class="currency"> <!--грн.--></span> |
56 | 56 | </span> |
... | ... | @@ -64,8 +64,8 @@ use yii\web\View; |
64 | 64 | ?> |
65 | 65 | <tr> |
66 | 66 | <td class="left"> |
67 | - <?= Html::a('Оформить заказ',Url::to('/order'),['class'=>'btn'])?> | |
68 | - | |
67 | + <?= Html::a('Оформить заказ', Url::to('/order'), [ 'class' => 'btn' ]) ?> | |
68 | + | |
69 | 69 | </td> |
70 | 70 | <td class="right"> |
71 | 71 | <div class="back_to_shop"> |
... | ... | @@ -77,18 +77,39 @@ use yii\web\View; |
77 | 77 | </tbody> |
78 | 78 | </table> |
79 | 79 | <br/> |
80 | - | |
81 | 80 | </div> |
82 | - | |
83 | 81 | <div class="modal-footer"> |
84 | - | |
85 | 82 | <div class="gray_part" id="buy_back_call_form"> |
86 | 83 | <p class="title">Заказать без оформления</p> |
87 | 84 | <p class="subtitle">Можно не заполнять никаких форм, просто оставить телефон и консультант решит все вопросы по оформлению заказа.</p> |
88 | 85 | <div class="back_call_form"> |
89 | - <input type="tel" class="customerphone" name="customerphone" value="" placeholder="+38 (0XX) XXX-XX-XX"> | |
90 | - <span class="btn btn-gray disabled" id="buy_back_call_submit" disabled1="disabled1">жду звонка</span> | |
91 | - <span class="submit_indicator"></span> | |
86 | + <?php | |
87 | + $quickbuy = new Orders([ | |
88 | + 'scenario' => Orders::SCENARIO_QUICK, | |
89 | + ]); | |
90 | + $form = ActiveForm::begin([ | |
91 | + 'id' => 'quickbuy-modal', | |
92 | + ]); | |
93 | + echo $form->field($quickbuy, 'phone', [ | |
94 | + 'selectors' => [ | |
95 | + 'input' => '#order-phone-modal', | |
96 | + ], | |
97 | + ]) | |
98 | + ->widget(MaskedInput::className(), [ | |
99 | + 'mask' => '+38(999)999-99-99', | |
100 | + 'options' => [ | |
101 | + 'type' => 'tel', | |
102 | + 'class' => 'customerphone', | |
103 | + 'id' => 'order-phone-modal', | |
104 | + ], | |
105 | + ]) | |
106 | + ->label(false); | |
107 | + echo Html::submitInput('жду звонка', [ 'class' => 'btn btn-info' ]); | |
108 | + echo Html::tag('span', '', [ | |
109 | + 'class' => 'submit_indicator', | |
110 | + ]); | |
111 | + $form::end(); | |
112 | + ?> | |
92 | 113 | <div class="clr"></div> |
93 | 114 | </div> |
94 | 115 | <p class="phone-example">например: +38 (095) 282-85-08</p> | ... | ... |
frontend/web/js/artbox_basket.js
frontend/web/js/artbox_basket.js.map
1 | -{"version":3,"file":"artbox_basket.js","sourceRoot":"","sources":["artbox_basket.ts"],"names":["ArtboxBasket","ArtboxBasket.constructor","ArtboxBasket.items","ArtboxBasket.add","ArtboxBasket.set","ArtboxBasket.updateModal","ArtboxBasket.updateCart","ArtboxBasket.count","ArtboxBasket.sum"],"mappings":"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"} | |
2 | 1 | \ No newline at end of file |
2 | +{"version":3,"file":"artbox_basket.js","sourceRoot":"","sources":["artbox_basket.ts"],"names":[],"mappings":"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"} | |
3 | 3 | \ No newline at end of file | ... | ... |
frontend/web/js/script.js
... | ... | @@ -224,4 +224,21 @@ $(document).on('submit', '#quickbuy-form', function(e) { |
224 | 224 | } |
225 | 225 | }) |
226 | 226 | }); |
227 | +$(document).on('submit', '#quickbuy-modal', function(e) | |
228 | +{ | |
229 | + e.preventDefault(); | |
230 | + var form = $('#buyForm'); | |
231 | + $.post('/order/quick-basket', $(this).serialize(), function(data) | |
232 | + { | |
233 | + if(!data.error) { | |
234 | + $(form).find('.modal-body').html(data.result); | |
235 | + } else { | |
236 | + $(form).find('.modal-body').html(data.error); | |
237 | + } | |
238 | + }).fail(function(jqXHR, textStatus, errorThrown) { | |
239 | + $(form).find('.modal-body').html(JSON.parse(jqXHR.responseText).message); | |
240 | + }); | |
241 | + $(form).find('.modal-title').remove(); | |
242 | + $(form).find('.modal-footer').remove(); | |
243 | +}); | |
227 | 244 | /* End ajax form submit */ |
228 | 245 | \ No newline at end of file | ... | ... |