recipe_form_new.blade.php 69 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534153515361537153815391540154115421543154415451546154715481549155015511552155315541555155615571558155915601561156215631564156515661567156815691570157115721573157415751576157715781579158015811582158315841585158615871588158915901591159215931594159515961597159815991600160116021603160416051606160716081609161016111612161316141615161616171618161916201621162216231624162516261627162816291630163116321633
  1. @extends('layouts.app')
  2. @section('css')
  3. <link href="{!! env('APP_ASSETS') !!}vendor_components/dropzone/dist/dropzone.css" rel="stylesheet">
  4. <link href="{!! env('APP_ASSETS') !!}vendor_components/select2/dist/css/select2.min.css" rel="stylesheet">
  5. @endsection
  6. @section('content')
  7. <style>
  8. .alert{
  9. display: none;
  10. }
  11. .container-full,.content-wrapper{
  12. background-color: transparent !important;
  13. }
  14. .card-header{
  15. display: inline-block;
  16. }
  17. #image-preview {
  18. width: 700px;
  19. border-radius: 20px;
  20. height: 341px;
  21. position: relative;
  22. overflow: hidden;
  23. background-color: #f9f9f9;
  24. color: #ecf0f1;
  25. background-position: center !important;
  26. background-size: cover !important;
  27. }
  28. #image-preview input {
  29. line-height: 200px;
  30. font-size: 200px;
  31. position: absolute;
  32. opacity: 0;
  33. z-index: 10;
  34. }
  35. #image-preview label {
  36. position: absolute;
  37. z-index: 5;
  38. opacity: 0.8;
  39. cursor: pointer;
  40. background-color: #bdc3c7;
  41. width: 200px;
  42. height: 50px;
  43. font-size: 20px;
  44. line-height: 50px;
  45. text-transform: uppercase;
  46. top: 0;
  47. left: 0;
  48. right: 0;
  49. bottom: 0;
  50. margin: auto;
  51. text-align: center;
  52. }
  53. .form-control, .form-select {
  54. height: 46px !important;
  55. border-color: #E4E6EB !important;
  56. border-radius: 7px !important;
  57. }
  58. .select2 {
  59. width: 100% !important;
  60. height: 46px;
  61. border-color: #E4E6EB !important;
  62. border-radius: 7px !important;
  63. /*padding: 0.375rem 0.75rem !important;
  64. font-size: 1rem !important;
  65. font-weight: 400;
  66. line-height: 1.5;
  67. color: #212529;*/
  68. }
  69. .select2-container--default .select2-selection--multiple{
  70. padding:6px;
  71. }
  72. @media only screen and (max-width:428px){
  73. #image-preview{
  74. width:100% !important;
  75. height: 50vh !important;
  76. margin-bottom: 10px;
  77. }
  78. }
  79. .modal-header {
  80. border-bottom-color: #ffab00;
  81. background-color: #ffab00;
  82. color:white;
  83. }
  84. </style>
  85. @php
  86. $resto = \App\Restaurants::find(\App\Helpers\CommonMethods::getRestuarantID());
  87. $lang = $resto->default_lang;
  88. app()->setLocale($lang);
  89. if(session('app_lang') !==null){
  90. $lang = session('app_lang');
  91. app()->setLocale($lang);
  92. }
  93. $restuarant1 = $resto;
  94. $resto_meta = isset($restuarant1->resto_metas)?$restuarant1->resto_metas:null;
  95. $resto_metas = [];
  96. $billing = [];
  97. if(isset($resto_meta)){
  98. foreach($resto_meta as $meta){
  99. // dump($meta->resto_meta_defs);
  100. $index_name = isset($meta->resto_meta_defs->parents)?$meta->resto_meta_defs->parents->meta_def_name:$meta->resto_meta_defs->meta_def_name;
  101. if(isset($_GET['debug'])){
  102. // dump($index_name );
  103. }
  104. if($meta->resto_meta_defs->meta_def_name=="BILLING_GATEWAY"){
  105. // dump($meta->resto_meta_defs->meta_def_name);
  106. // $resto_metas['BILLING_GATEWAY'][] = $meta->meta_val;
  107. $billing[] = array('id'=>$meta->meta_id,'value'=>$meta->meta_val);
  108. }
  109. $resto_metas[$index_name] = $meta->meta_val;
  110. }
  111. }
  112. $resto_metas['BILLING_GATEWAY'] = $billing;
  113. $currency = isset($resto_metas['BUSSINESS_CCY'])?$resto_metas['BUSSINESS_CCY']:"IQD";
  114. $business_type = isset($resto_metas['BUSSINESS_TYPE'])?$resto_metas['BUSSINESS_TYPE']:"Restaurants";
  115. $business_type = trim($business_type);
  116. @endphp
  117. <div class="content-wrapper">
  118. <div class="container-full">
  119. <section class="content">
  120. <h1 class="mt-4">Recipe</h1>
  121. <ol class="breadcrumb mb-4">
  122. <li class="breadcrumb-item"><a href="{!! env('APP_URL') !!}dashboard">Dashboard</a></li>
  123. <li class="breadcrumb-item active"> @if(isset($recipe)) Edit Recipe @else New Recipe @endif</li>
  124. </ol>
  125. <div class="row">
  126. <div class="col-xl-12">
  127. <div class="card mb-4">
  128. <div class="card-header">
  129. <i class="fa fa-plus mr-1"></i>
  130. @if(isset($recipe))
  131. Edit {!! $recipe->name !!}
  132. @else
  133. New Item
  134. @endif
  135. </div>
  136. <div class="card-body">
  137. <form id="restaurant-form" method="POST" action="{!! env('APP_URL') !!}recipe/save" enctype="multipart/form-data">
  138. @csrf
  139. <input type="hidden" name="id" value="{!! isset($recipe)?$recipe->id:'' !!}" />
  140. <input type="hidden" name="business_type" value="{!! $business_type !!}">
  141. <div class="row mb-5">
  142. <div class="col-sm-8">
  143. <div class="card">
  144. <div class="card-header">
  145. <h3 class="pull-left">Product Basic Details</h3>
  146. <!--<a href="#!" class="btn btn-sm btn-primary pull-right add-faq">Add FAQ</a>-->
  147. </div>
  148. <div class="card-body">
  149. <div class="row">
  150. <div class="col-sm-4 col-md-12">
  151. <!-- row start-->
  152. <div class="row">
  153. <div class="col-6">
  154. <div class="form-group">
  155. <label>English Name</label>
  156. <input type="text" class="form-control" placeholder="" name="name" value="{!! isset($recipe)?$recipe->name:'' !!}" required>
  157. </div>
  158. </div>
  159. <div class="col-6">
  160. <div class="form-group">
  161. <label>Arabic Name</label>
  162. <input type="text" class="form-control" placeholder="" name="arabic_name" value="{!! isset($recipe)?$recipe->arabic_name:'' !!}" required>
  163. </div>
  164. </div>
  165. </div>
  166. <!-- row end-->
  167. <!-- row start-->
  168. <div class="row">
  169. <div class="col-6">
  170. <div class="form-group">
  171. <label>English Description</label>
  172. <textarea class="form-control" placeholder="" name="short_description">{!! isset($recipe)?$recipe->short_description:'' !!}</textarea>
  173. </div>
  174. </div>
  175. <div class="col-6">
  176. <div class="form-group">
  177. <label>Arabic Description</label>
  178. <textarea class="form-control" placeholder="" name="short_description_arabic">{!! isset($recipe)?$recipe->short_description_arabic:'' !!}</textarea>
  179. </div>
  180. </div>
  181. </div>
  182. <!-- row end-->
  183. <!-- row start-->
  184. <div class="row">
  185. <div class="col-6">
  186. @php
  187. $c = [];
  188. if(isset($recipe)){
  189. $c = $recipe->categories->pluck('category_id')->toArray();
  190. // dump($c);
  191. }
  192. @endphp
  193. <div class="col-sm-12 col-md-12">
  194. <div class="form-group">
  195. <label>Category</label>
  196. <select class="custom-select" name="category[]" multiple>
  197. <option value="">Select Category</option>
  198. @if(isset($categories) && $categories->count() > 0)
  199. @foreach($categories as $category)
  200. <option value="{!! $category->id !!}" @if(isset($recipe) && in_array($category->id,$c)) selected @endif>{!! $category->name !!}</option>
  201. @endforeach
  202. @endif
  203. </select>
  204. </div>
  205. </div>
  206. </div>
  207. <div class="col-6">
  208. <div class="col-sm-12 col-md-12">
  209. <div class="form-group">
  210. <label>Base Price </label>
  211. <br>
  212. <input type="number" class="form-control" placeholder="" name="price" value="{!! isset($recipe)?$recipe->price:'' !!}" required>
  213. </div>
  214. </div>
  215. </div>
  216. </div>
  217. <!-- row end-->
  218. <!-- row start-->
  219. <div class="row">
  220. <div class="col-6">
  221. <div class="form-group">
  222. <label>Product Active ?</label>
  223. &nbsp;&nbsp;&nbsp;
  224. @if(isset($recipe))
  225. <input type="checkbox" id="status" class="filled-in btn-success" role="switch" name="status" @if($recipe->status==1) checked @endif>
  226. <label for="status"></label>
  227. @else
  228. <input type="checkbox" id="status" class="filled-in" name="status">
  229. <label for="status"></label>
  230. @endif
  231. </div>
  232. </div>
  233. <div class="col-6">
  234. <div class="form-group">
  235. <label>Show Price ? </label>
  236. &nbsp;&nbsp;&nbsp;
  237. @if(isset($recipe))
  238. <input type="checkbox" id="basic_checkbox_2" class="filled-in" name="show_recipe_main_price" @if($recipe->show_recipe_main_price==1) checked @endif>
  239. <label for="basic_checkbox_2"></label>
  240. @else
  241. <input type="checkbox" id="basic_checkbox_2" class="filled-in" name="show_recipe_main_price">
  242. <label for="basic_checkbox_2"></label>
  243. @endif </div>
  244. </div>
  245. </div>
  246. <!-- row end-->
  247. <!-- row start-->
  248. <!--
  249. <div class="row">
  250. <div class="col-6">
  251. <div class="form-group">
  252. <label>Product Cover Image</label>
  253. <div id="image-preview" @if(isset($recipe) && isset($recipe->main_images) && !empty($recipe->main_images->file_name)) style="width:90%; height:80%;background: url({!! $recipe->main_images->file_name !!})" @endif>
  254. <label for="image-upload" id="image-label">Choose File</label>
  255. <input type="file" name="main_image" id="image-upload" />
  256. </div>
  257. @if(isset($recipe) && isset($recipe->main_images) && !empty($recipe->main_images->file_name))
  258. <a href="#!" class="text-center text-danger remove-image" data-recipe-id="{!! isset($recipe)?$recipe->id:'' !!}">Remove Image</a>
  259. @endif
  260. </div>
  261. </div>
  262. <div class="col-6">
  263. </div>
  264. </div>
  265. -->
  266. <!-- row end-->
  267. </div>
  268. </div>
  269. </div>
  270. </div>
  271. </div>
  272. <div class="col-sm-4">
  273. <p style="font-size: 14px">Cover Image</p>
  274. <div id="image-preview" @if(isset($recipe) && isset($recipe->main_images) && !empty($recipe->main_images->file_name)) style="width:90%; height:80%;background: url({!! $recipe->main_images->file_name !!})" @endif>
  275. <label for="image-upload" id="image-label">Choose File</label>
  276. <input type="file" name="main_image" id="image-upload" />
  277. </div>
  278. @if(isset($recipe) && isset($recipe->main_images) && !empty($recipe->main_images->file_name))
  279. <a href="#!" class="btn btn-danger remove-image" data-recipe-id="{!! isset($recipe)?$recipe->id:'' !!}">Remove Image</a>
  280. @endif
  281. </div>
  282. </div>
  283. <!-- Variations start -->
  284. @if($business_type=="ClothsStore")
  285. @php
  286. $sizes = [];
  287. $colors = [];
  288. $color_data = null;
  289. if(isset($recipe)){
  290. $colors = \App\ClothOptions::where('product_id',$recipe->id)->where('type','color')->pluck('name')->whereNull('deleted_at')->toArray();
  291. //dump($colors);
  292. $sizes = \App\ClothOptions::where('product_id',$recipe->id)->where('type','size')->pluck('name')->toArray();
  293. $color_data = \App\ClothOptions::where('product_id',$recipe->id)->whereIn('type',['color','color_image'])->whereNull('deleted_at')->get();
  294. }
  295. @endphp
  296. <div class="row mb-5">
  297. <div class="col-sm-8">
  298. <div class="card">
  299. <div class="card-header">
  300. <h3 class="pull-left">Add Product Variations</h3>
  301. <!--<a href="#!" class="btn btn-sm btn-primary pull-right add-faq">Add FAQ</a>-->
  302. </div>
  303. <div class="card-body">
  304. <div class="row">
  305. <div class="col-sm-4 col-md-12">
  306. <!-- row start -->
  307. <div class="row">
  308. <div class="col-sm-4 col-md-6">
  309. <div class="form-group">
  310. <label>Add Sizes (S/M/L/EUR....)</label>
  311. <select class="form-control" multiple id="size" name="size[]">
  312. <option value="30" @if(in_array('30',$sizes)) selected @endif>30</option>
  313. <option value="32" @if(in_array('32',$sizes)) selected @endif>32</option>
  314. <option value="34" @if(in_array('34',$sizes)) selected @endif>34</option>
  315. <option value="36" @if(in_array('36',$sizes)) selected @endif>36</option>
  316. <option value="38" @if(in_array('38',$sizes)) selected @endif>38</option>
  317. <option value="40" @if(in_array('40',$sizes)) selected @endif>40</option>
  318. <option value="42" @if(in_array('42',$sizes)) selected @endif>42</option>
  319. <option value="44" @if(in_array('44',$sizes)) selected @endif>44</option>
  320. <option value="46" @if(in_array('46',$sizes)) selected @endif>46</option>
  321. <option value="52" @if(in_array('52',$sizes)) selected @endif>52</option>
  322. <option value="54" @if(in_array('54',$sizes)) selected @endif>54</option>
  323. <option value="56" @if(in_array('56',$sizes)) selected @endif>56</option>
  324. <option value="58" @if(in_array('58',$sizes)) selected @endif>58</option>
  325. <option value="60" @if(in_array('60',$sizes)) selected @endif>60</option>
  326. <option value="XXS" @if(in_array('XXS',$sizes)) selected @endif>XXS</option>
  327. <option value="XS" @if(in_array('XS',$sizes)) selected @endif>XS</option>
  328. <option value="S" @if(in_array('S',$sizes)) selected @endif>S</option>
  329. <option value="M" @if(in_array('M',$sizes)) selected @endif>M</option>
  330. <option value="L" @if(in_array('L',$sizes)) selected @endif>L</option>
  331. <option value="XL" @if(in_array('XL',$sizes)) selected @endif>XL</option>
  332. <option value="XXL" @if(in_array('XXL',$sizes)) selected @endif>XXL</option>
  333. <option value="XXXL" @if(in_array('XXXL',$sizes)) selected @endif>XXXL</option>
  334. <option value="0-3-Months" @if(in_array('0-3-Months',$sizes)) selected @endif>0-3 Months</option>
  335. <option value="3-6-Months" @if(in_array('3-6-Months',$sizes)) selected @endif>3-6 Months</option>
  336. <option value="6-9-Months" @if(in_array('6-9-Months',$sizes)) selected @endif>6-9 Months</option>
  337. <option value="9-12-Months" @if(in_array('9-12-Months',$sizes)) selected @endif>9-12 Months</option>
  338. <option value="1-2-YEARS" @if(in_array('1-2-YEARS',$sizes)) selected @endif>1-2 YEARS</option>
  339. <option value="2-3-YEARS" @if(in_array('2-3-YEARS',$sizes)) selected @endif>2-3 YEARS</option>
  340. <option value="3-4-YEARS" @if(in_array('3-4-YEARS',$sizes)) selected @endif>3-4 YEARS</option>
  341. <option value="5-6-YEARS" @if(in_array('5-6-YEARS',$sizes)) selected @endif>5-6 YEARS</option>
  342. <option value="6-7-YEARS" @if(in_array('6-7-YEARS',$sizes)) selected @endif>6-7 YEARS</option>
  343. <option value="7-8-YEARS" @if(in_array('7-8-YEARS',$sizes)) selected @endif>7-8 YEARS</option>
  344. <option value="1-2-Y" @if(in_array('1-2-Y',$sizes)) selected @endif>1-2 Y</option>
  345. <option value="2-3-Y" @if(in_array('2-3-Y',$sizes)) selected @endif>2-3 Y</option>
  346. <option value="3-4-Y" @if(in_array('3-4-Y',$sizes)) selected @endif>3-4 Y</option>
  347. <option value="5-6-Y" @if(in_array('5-6-Y',$sizes)) selected @endif>5-6 Y</option>
  348. <option value="6-7-Y" @if(in_array('6-7-Y',$sizes)) selected @endif>6-7 Y</option>
  349. <option value="7-8-Y" @if(in_array('7-8-Y',$sizes)) selected @endif>7-8 Y</option>
  350. <option value="0-3-آشهر" @if(in_array('0-3-آشهر',$sizes)) selected @endif>0-3 آشهر</option>
  351. <option value="3-6-آشهر" @if(in_array('3-6-آشهر',$sizes)) selected @endif>3-6 آشهر</option>
  352. <option value="6-9-آشهر" @if(in_array('6-9-آشهر',$sizes)) selected @endif>6-9 آشهر</option>
  353. <option value="9-12-آشهر" @if(in_array('9-12-آشهر',$sizes)) selected @endif>9-12 آشهر</option>
  354. <option value="1-2-سنوات" @if(in_array('1-2-سنوات',$sizes)) selected @endif>1-2 سنوات</option>
  355. <option value="2-3-سنوات" @if(in_array('2-3-سنوات',$sizes)) selected @endif>2-3 سنوات</option>
  356. <option value="3-4-سنوات" @if(in_array('3-4-سنوات',$sizes)) selected @endif>3-4 سنوات</option>
  357. <option value="5-6-سنوات" @if(in_array('5-6-سنوات',$sizes)) selected @endif>5-6 سنوات</option>
  358. <option value="6-7-سنوات" @if(in_array('6-7-سنوات',$sizes)) selected @endif>6-7 سنوات</option>
  359. <option value="7-8-سنوات" @if(in_array('7-8-سنوات',$sizes)) selected @endif>7-8 سنوات</option>
  360. </select>
  361. </div>
  362. </div>
  363. </div>
  364. <!-- row end -->
  365. <!-- row start-->
  366. <div class="row">
  367. <div class="col-6">
  368. <div class="form-group">
  369. <label>Select Color Type (Color, Color+Image, Only Image....)</label>
  370. <select class="form-control" required name="color_option">
  371. <option value="color" @if(isset($recipe) && $recipe->color_option == 'color' ) selected @endif>Color Only</option>
  372. <option value="color_image" @if(isset($recipe) && $recipe->color_option =='color_image' ) selected @endif>Color + Image</option>
  373. </select>
  374. </div>
  375. </div>
  376. <div class="col-6">
  377. </div>
  378. </div>
  379. <!-- row end-->
  380. <!-- row start-->
  381. <div class="row">
  382. <div class="col-sm-4 col-md-6">
  383. <div class="form-group">
  384. <label>Add Colors</label>
  385. <select class="form-control" multiple id="color" name="color[]">
  386. </select>
  387. </div>
  388. </div>
  389. </div>
  390. <!-- row end-->
  391. <div class="row">
  392. @if(isset($color_data))
  393. <div class="row">
  394. <div class="col-sm-4 col-md-6">
  395. <table class="table table-stripped">
  396. <tbody>
  397. @foreach( $color_data as $color)
  398. <tr>
  399. <td>
  400. <div style="width: 20px; height: 20px; background-color: {!! $color->name !!}; float: left; border-radius: 20px;"></div>
  401. </td>
  402. <td>@if($color->img_url!="") <img style="width: 40px" src="{!! $color->img_url!!}" @endif </td>
  403. <td><a href="#!" data-id="{!! $color->id !!}" class="btn btn-sm btn-danger delete-color">Delete</a></td>
  404. </tr>
  405. @endforeach
  406. </tbody>
  407. </table>
  408. </div>
  409. </div>
  410. @endif
  411. <div class="row">
  412. <div class="col-sm-4 col-md-6">
  413. <table id="color-table" class="table table-stripped">
  414. <tbody></tbody>
  415. </table>
  416. </div>
  417. </div>
  418. </div>
  419. </div>
  420. </div>
  421. </div>
  422. </div>
  423. </div>
  424. </div>
  425. <!-- Variations end -->
  426. @endif
  427. <!-- Gallery Start -->
  428. <div class="row mb-5">
  429. <div class="col-sm-8">
  430. <div class="card">
  431. <div class="card-header">
  432. <h3 class="pull-left">Product Gallery</h3>
  433. @if( isset($recipe))
  434. <a href="#!" class="btn btn-primary upload-gallery pull-right">Upload Gallery</a>
  435. @if($business_type=="Restaurants" || $business_type=="Florist" )
  436. <a href="#!" class="btn btn-primary add-options">Add Extra Options</a>
  437. @endif
  438. @endif
  439. </div>
  440. <div class="card-body">
  441. @if(isset($recipe) && isset($recipe->galleries))
  442. <div class="row mb-2">
  443. @foreach($recipe->galleries as $gallery)
  444. <div class="col-sm-2 gallery">
  445. <div class="mb-1" style="width: 50px; height: 50px; background-image: url({!! $gallery->file_name !!}); background-position: center; background-size: contain">
  446. </div>
  447. <div class="text-center">
  448. <a href="#!" class="delete-image text-danger" data-id="{!! $gallery->id !!}"><i class="glyphicon glyphicon-trash"></i> </a>
  449. </div>
  450. </div>
  451. @endforeach
  452. </div>
  453. @endif
  454. </div>
  455. </div>
  456. </div>
  457. </div>
  458. <!-- Gallery End -->
  459. @if($business_type=="Restaurants" || $business_type=="Florist")
  460. @if(isset($recipe->extra_options) && $recipe->extra_options->count() > 0)
  461. <h3>Extra Options</h3>
  462. <hr />
  463. <div class="row">
  464. <div class="col-sm-6 col-md-8">
  465. <table class="table table-bordered">
  466. <thead>
  467. <tr>
  468. <th>Option Name</th>
  469. <th>Price</th>
  470. <th>Items</th>
  471. <th>Is Mandatory?</th>
  472. <th></th>
  473. </tr>
  474. </thead>
  475. <tbody>
  476. @foreach($recipe->extra_options as $option)
  477. <tr>
  478. <td>{!! $option->name !!} @if($option->name_arabic!="") ( {!! $option->name_arabic !!} ) @endif</td>
  479. <td>{!! $option->price !!}</td>
  480. <td>
  481. @if(isset($option->extra_option_items) && $option->extra_option_items->count() > 0)
  482. <a href="#!" class="badge badge-success view-items" data-id="{!! $option->id !!}" >{!! $option->extra_option_items->count() !!}</a>
  483. @endif
  484. <a href="#!" class="badge badge-danger add-new-items" data-id="{!! $option->id !!}"><i class="glyphicon glyphicon-plus"></i> </a>
  485. </td>
  486. <td>
  487. @if(isset($option->extra_option_items) && $option->extra_option_items->count() > 0)
  488. <!-- <input type="checkbox" class="is_mandatory" @if($option->is_mandatory==1) checked @endif value="" data-id="{!! $option->id !!}" /> -->
  489. <input type="checkbox" id="is_mandatory{!! $option->id !!}" class="filled-in is_mandatory" name="is_mandatory" @if($option->is_mandatory==1) checked @endif value="" data-id="{!! $option->id !!}">
  490. <label for="is_mandatory{!! $option->id !!}">Mandatory Items</label>
  491. @if($option->is_mandatory==1) User can select <span class="badge badge-success">{!! $option->mandatory_amount !!}</span> items must @endif
  492. @endif
  493. </td>
  494. <td>
  495. <a href="#!" class="btn btn-sm btn-primary edit-option" data-id="{!! $option->id !!}" data-toggle="tooltip" data-placement="top" title="Edit"><i class="glyphicon glyphicon-edit"></i> </a>
  496. <a href="javascript:;" data-id="{!! $option->id !!}" class="btn btn-sm btn-danger delete-option"><i class="glyphicon glyphicon-trash" data-toggle="tooltip" data-placement="top" title="Delete"></i></a>
  497. </td>
  498. </tr>
  499. @endforeach
  500. </tbody>
  501. </table>
  502. </div>
  503. </div>
  504. @endif
  505. @endif
  506. @if(isset($recipe))
  507. @if(isset($resto_metas['ENABLED_PRODUCT_FAQS']) && $resto_metas['ENABLED_PRODUCT_FAQS']=="Yes")
  508. <div class="row mb-5">
  509. <div class="col-sm-8">
  510. <div class="card">
  511. <div class="card-header">
  512. <h3 class="pull-left">Product FAQs</h3>
  513. <a href="#!" class="btn btn-sm btn-primary pull-right add-faq">Add FAQ</a>
  514. </div>
  515. <div class="card-body">
  516. @if(isset($recipe->product_faqs) && $recipe->product_faqs->count() > 0)
  517. <div class="accordion" id="accordionExample">
  518. @foreach($recipe->product_faqs as $faq)
  519. <div class="accordion-item">
  520. <h2 class="accordion-header" id="heading{!! $faq->id !!}">
  521. <button class="accordion-button collapsed" type="button" data-bs-toggle="collapse" data-bs-target="#collapse{!! $faq->id !!}" aria-expanded="true" aria-controls="collapse{!! $faq->id !!}">
  522. {!! $faq->question !!}
  523. </button>
  524. </h2>
  525. <div id="collapse{!! $faq->id !!}" class="accordion-collapse collapse" aria-labelledby="heading{!! $faq->id !!}" data-bs-parent="#accordionExample">
  526. <div class="accordion-body">
  527. <p>{!! nl2br($faq->answer) !!}</p>
  528. <div class="text-end">
  529. <a href="javascript:void(0)" data-id="{!! $faq->id !!}" class="edit-faq" style="margin: 0 3px 0 10px"><i class="glyphicon glyphicon-edit"></i></a>
  530. |
  531. <a href="javascript:void(0)" data-id="{!! $faq->id !!}" class="delete-faq" style="color:red"><i class="glyphicon glyphicon-trash"></i></a>
  532. </div>
  533. </div>
  534. </div>
  535. </div>
  536. @endforeach
  537. </div>
  538. @endif
  539. </div>
  540. </div>
  541. </div>
  542. </div>
  543. @endif
  544. @endif
  545. <div class="row">
  546. <div class="col-sm-4 col-md-6">
  547. @if($business_type=="Restaurants" || $business_type=="Florist")
  548. <div class="form-group">
  549. <div class="custom-control custom-checkbox">
  550. <input class="custom-control-input" id="is_customized" @if(isset($recipe) && $recipe->is_customized=="1") checked @endif name="is_customized" type="checkbox" />
  551. <label class="custom-control-label" for="is_customized">Customizedable</label>
  552. </div>
  553. </div>
  554. @endif
  555. </div>
  556. </div>
  557. <div class="row">
  558. <div class="col-sm-12">
  559. <a href="#!" class="btn btn-primary save">Save</a>
  560. </div>
  561. </div>
  562. <div class="row mt-2">
  563. <div class="col-md-12">
  564. <div class="alert alert-success success"></div>
  565. <div class="alert alert-danger error"></div>
  566. </div>
  567. </div>
  568. </form>
  569. </div>
  570. </div>
  571. </div>
  572. </div>
  573. </section>
  574. </div>
  575. </div>
  576. @if( isset($recipe))
  577. <div class="modal" id="upload-gallery" data-bs-backdrop="static" data-bs-keyboard="false" tabindex="-1" aria-labelledby="staticBackdropLabel" aria-hidden="true">
  578. <div class="modal-dialog">
  579. <div class="modal-content">
  580. <div class="modal-header">
  581. <h5 class="modal-title" id="staticBackdropLabel">Recipe Gallery</h5>
  582. <button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
  583. </div>
  584. <div class="modal-body">
  585. <div class="row">
  586. <div class="col-sm-12 col-md-12">
  587. <div class="form-group">
  588. <label>Gallery</label>
  589. <div class="dropzone dz-clickable" id="gallery">
  590. <div class="dz-default dz-message" data-dz-message="">
  591. <span>Drop files here to upload <br>
  592. <b>(accepted file formats .jpg,.png,.jpeg case sensitive)</b> </span>
  593. </div>
  594. </div>
  595. </div>
  596. </div>
  597. </div>
  598. </div>
  599. <div class="modal-footer">
  600. <button type="button" class="btn btn-primary upload">Upload</button>
  601. <button type="button" class="btn btn-secondary" data-dismiss="modal">Close</button>
  602. </div>
  603. </div>
  604. </div>
  605. </div>
  606. <div class="modal" id="extra-options" data-bs-backdrop="static" data-bs-keyboard="false" tabindex="-1" aria-labelledby="staticBackdropLabel" aria-hidden="true">
  607. <div class="modal-dialog modal-lg">
  608. <div class="modal-content">
  609. <div class="modal-header">
  610. <h5 class="modal-title" id="staticBackdropLabel">Add Extra Options</h5>
  611. <button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
  612. </div>
  613. <div class="modal-body">
  614. <form id="extra-options-form" method="POST" action="{!! env('APP_URL') !!}save/extra/options">
  615. @csrf
  616. <input type="hidden" name="recipe_id" value="{!! $recipe->id !!}" />
  617. <input type="hidden" name="resto_id" value="{!! $recipe->resto_id !!}" />
  618. <div class="row">
  619. <div class="col-sm-4">
  620. <b>Name English: </b>
  621. <input class="form-control" name="option" placeholder="Name of option" required />
  622. </div>
  623. <div class="col-sm-4">
  624. <b>Name Arabic: </b>
  625. <input class="form-control" name="arabic_option" placeholder="Name of option in arabic" required />
  626. </div>
  627. <div class="col-sm-3">
  628. <b>Price : </b>
  629. <input class="form-control" name="price" placeholder="Price if it has" />
  630. </div>
  631. </div>
  632. <div class="row">
  633. <div class="col-sm-12 text-right"><a href="#!" class="btn btn-sm btn-danger mt-1 add-extra-items">Add Extra Item</a> </div>
  634. </div>
  635. <div id="items-list">
  636. </div>
  637. </form>
  638. </div>
  639. <div class="modal-footer">
  640. <button type="button" class="btn btn-primary save-extra-options">Add</button>
  641. <button type="button" class="btn btn-secondary" data-dismiss="modal">Close</button>
  642. </div>
  643. </div>
  644. </div>
  645. </div>
  646. <div class="modal" id="edit-extra-option" data-bs-backdrop="static" data-bs-keyboard="false" tabindex="-1" aria-labelledby="staticBackdropLabel" aria-hidden="true">
  647. <div class="modal-dialog modal-sm">
  648. <div class="modal-content">
  649. <div class="modal-header">
  650. <h5 class="modal-title" id="staticBackdropLabel">Edit Option</h5>
  651. <button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
  652. </div>
  653. <div class="modal-body">
  654. <form method="POST" action="{!! env('APP_URL') !!}update/option" id="edit-form">
  655. <input type="hidden" name="id" />
  656. @csrf
  657. <div class="row">
  658. <div class="col-sm-12">
  659. <b>Name English </b>
  660. <input class="form-control" name="option" placeholder="Name of option" required />
  661. </div>
  662. </div>
  663. <div class="row">
  664. <div class="col-sm-12">
  665. <b>Name Arabic</b>
  666. <input class="form-control" name="arabic_option" placeholder="Name of option in arabic" />
  667. </div>
  668. </div>
  669. <div class="row">
  670. <div class="col-sm-12">
  671. <b>Price </b>
  672. <input class="form-control" name="price" placeholder="Price" />
  673. </div>
  674. </div>
  675. <div class="row">
  676. <div class="col-sm-12">
  677. <br>
  678. <b></b>
  679. <a href="#!" style="margin-top: 2px" class="btn btn-primary update-option">Save <i class="fa fa-save"></i> </a>
  680. </div>
  681. </div>
  682. <div class="row mt-2">
  683. <div class="col-md-12">
  684. <div class="alert alert-success success"></div>
  685. <div class="alert alert-danger error"></div>
  686. </div>
  687. </div>
  688. </form>
  689. </div>
  690. <!--
  691. <div class="modal-footer">
  692. <button type="button" class="btn btn-primary save-extra-options">Add</button>
  693. <button type="button" class="btn btn-secondary" data-dismiss="modal">Close</button>
  694. </div>
  695. -->
  696. </div>
  697. </div>
  698. </div>
  699. <div class="modal" id="extra-option-item" data-bs-backdrop="static" data-bs-keyboard="false" tabindex="-1" aria-labelledby="staticBackdropLabel" aria-hidden="true">
  700. <div class="modal-dialog modal-lg">
  701. <div class="modal-content">
  702. <div class="modal-header">
  703. <h5 class="modal-title" id="staticBackdropLabel">Customized Items List</h5>
  704. <button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
  705. </div>
  706. <div class="modal-body">
  707. <table class="table table-bordered" id="item-table">
  708. <thead>
  709. <tr>
  710. <th>Name</th>
  711. <th>Name Arabic</th>
  712. <th>Price</th>
  713. <th>Item type</th>
  714. <th>Customized Sub Items List</th>
  715. <th></th>
  716. </tr>
  717. </thead>
  718. <tbody>
  719. </tbody>
  720. </table>
  721. </div>
  722. </div>
  723. </div>
  724. </div>
  725. <div class="modal" id="edit-extra-item-option" data-bs-backdrop="static" data-bs-keyboard="false" tabindex="-1" aria-labelledby="staticBackdropLabel" aria-hidden="true">
  726. <div class="modal-dialog modal-lg">
  727. <div class="modal-content">
  728. <div class="modal-header">
  729. <h5 class="modal-title" id="staticBackdropLabel"><b>Edit Item</b> </h5>
  730. <button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
  731. </div>
  732. <div class="modal-body modal-lg">
  733. <form method="POST" action="{!! env('APP_URL') !!}update/item" id="edit-item-form">
  734. <input type="hidden" name="id" />
  735. @csrf
  736. <div class="row">
  737. <div class="col-sm-12">
  738. <b>Name English: </b>
  739. <input class="form-control" name="option" placeholder="Name of Item" required />
  740. </div>
  741. </div>
  742. <div class="row">
  743. <div class="col-sm-12">
  744. <b><br>Name Arabic: </b>
  745. <input class="form-control" name="name_arabic" placeholder="Name of option in arabic" required />
  746. <br>
  747. </div>
  748. </div>
  749. <div class="row">
  750. <div class="col-sm-12">
  751. <b>Price: </b>
  752. <input class="form-control" name="price" placeholder="Price" />
  753. </div>
  754. </div>
  755. <div class="row">
  756. <div class="col-sm-12">
  757. <br><select class="form-control" name="item_type">
  758. <option value="">Choose Button type</option>
  759. <option value="option">Option Button</option>
  760. <option value="check-box">Checkbox</option>
  761. </select>
  762. </div>
  763. <br>
  764. </div>
  765. <div class="row">
  766. <div class="col-sm-12">
  767. <br><a href="#!" style="margin-top: 2px" class="btn btn-primary update-item">Save <i class="fa fa-save"></i> </a>
  768. </div><br>
  769. </div>
  770. <div class="row mt-2">
  771. <div class="col-md-12">
  772. <div class="alert alert-success success"></div>
  773. <div class="alert alert-danger error"></div>
  774. </div>
  775. </div>
  776. </form>
  777. </div>
  778. </div>
  779. </div>
  780. </div>
  781. <div class="modal" id="mandatory-extra-item-option" data-bs-backdrop="static" data-bs-keyboard="false" tabindex="-1" aria-labelledby="staticBackdropLabel" aria-hidden="true">
  782. <div class="modal-dialog">
  783. <div class="modal-content">
  784. <div class="modal-header">
  785. <h5 class="modal-title" id="staticBackdropLabel">Make Mandatory options</h5>
  786. <button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
  787. </div>
  788. <div class="modal-body">
  789. <form method="POST" action="{!! env('APP_URL') !!}update/mandatory/item" id="mandatory-item-form">
  790. <input type="hidden" name="id" />
  791. @csrf
  792. <div class="row">
  793. <div class="col-sm-10">
  794. <input class="form-control" type="number" name="mandatory_amount" placeholder="Enter quantity of items" required />
  795. </div>
  796. <div class="col-sm-1">
  797. <a href="#!" style="margin-top: 2px" class="btn btn-sm btn-success make-mandatory-item"><i class="fa fa-save"></i> </a>
  798. </div>
  799. </div>
  800. <div class="row mt-2">
  801. <div class="col-md-12">
  802. <div class="alert alert-success success"></div>
  803. <div class="alert alert-danger error"></div>
  804. </div>
  805. </div>
  806. </form>
  807. </div>
  808. </div>
  809. </div>
  810. </div>
  811. <div class="modal" id="add-new-items" data-bs-backdrop="static" data-bs-keyboard="false" tabindex="-1" aria-labelledby="staticBackdropLabel" aria-hidden="true">
  812. <div class="modal-dialog modal-lg">
  813. <div class="modal-content">
  814. <div class="modal-header">
  815. <h5 class="modal-title" id="staticBackdropLabel">Add more Items</h5>
  816. <button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
  817. </div>
  818. <div class="modal-body">
  819. <form id="extra-items-form" method="POST" action="{!! env('APP_URL') !!}save/add/items">
  820. @csrf
  821. <input type="hidden" name="extra_option_id"/>
  822. <input type="hidden" name="parent_id" />
  823. <div class="row">
  824. <div class="col-sm-12 text-right"><a href="#!" class="btn btn-sm btn-danger mt-1 add-extra-items-2">Add Extra Item</a> </div>
  825. </div>
  826. <div id="items-list-2">
  827. <div class="row" style="margin-top: 10px">
  828. <div class="col-sm-3">
  829. <input class="form-control" name="item_name[]" placeholder="Name of item">
  830. </div>
  831. <div class="col-sm-3">
  832. <input class="form-control" name="item_name_arabic[]" placeholder="Name of item in Arabic">
  833. </div>
  834. <div class="col-sm-3">
  835. <select class="form-control" name="item_type[]"><option value="option">Option Button</option><option value="check-box">Checkbox</option> </select>
  836. </div>
  837. <div class="col-sm-2">
  838. <input class="form-control" name="item_price[]" placeholder="Price if it has">
  839. </div>
  840. </div>
  841. </div>
  842. </form>
  843. </div>
  844. <div class="modal-footer">
  845. <button type="button" class="btn btn-primary save-extra-items">Add Items</button>
  846. <button type="button" class="btn btn-secondary" data-dismiss="modal">Close</button>
  847. </div>
  848. </div>
  849. </div>
  850. </div>
  851. <div class="modal" id="add-new-faq" data-bs-backdrop="static" data-bs-keyboard="false" tabindex="-1" aria-labelledby="staticBackdropLabel" aria-hidden="true">
  852. <div class="modal-dialog">
  853. <div class="modal-content">
  854. <div class="modal-header">
  855. <h5 class="modal-title" id="staticBackdropLabel">Add FAQ</h5>
  856. <button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
  857. </div>
  858. <div class="modal-body">
  859. <form id="faq-form" method="POST" action="{!! env('APP_URL') !!}save/faq">
  860. @csrf
  861. <input type="hidden" name="id" />
  862. <input type="hidden" name="product_id" value="{!! $recipe->id !!}" />
  863. <div class="form-group">
  864. <label>Question</label>
  865. <!-- <input type="text" name="question" required class="form-control" />-->
  866. <textarea row="2" style="height: 200px !important" name="question" required class="form-control"></textarea>
  867. </div>
  868. <div class="form-group">
  869. <label>Answer</label>
  870. <textarea row="4" style="height: 200px !important" name="answer" required class="form-control"></textarea>
  871. </div>
  872. </form>
  873. </div>
  874. <div class="modal-footer">
  875. <button type="button" class="btn btn-primary save-faq">Add</button>
  876. <button type="button" class="btn btn-secondary" data-dismiss="modal">Close</button>
  877. </div>
  878. </div>
  879. </div>
  880. </div>
  881. @endif
  882. @endsection
  883. @section('js')
  884. <script src="{!! env('APP_ASSETS') !!}vendor_components/dropzone/dist/min/dropzone.min.js"></script>
  885. <script src="{!! env('APP_ASSETS') !!}vendor_components/select2/dist/js/select2.min.js"></script>
  886. <script src="{!! env('APP_ASSETS') !!}vendor_components/bootstrap-colorpicker/dist/js/bootstrap-colorpicker.min.js"></script>
  887. <script>
  888. var spinner = '<span class="spinner-border" role="status" aria-hidden="true"></span>';
  889. Dropzone.autoDiscover = false;
  890. var extra_option_id = 0;
  891. var _image_is_required = "required";
  892. var color_option = "color";
  893. color_option=$("select[name=color_option]").val();
  894. $(function () {
  895. @if(isset($recipe))
  896. $("body").on("change","select[name=color_option]",function(){
  897. var _existing = "{!! $recipe->color_option !!}";
  898. var _this_value = $(this).val();
  899. if(_existing!=_this_value){
  900. alert('Color setting will be reset, you have to add all color settings again');
  901. }
  902. color_option = _this_value;
  903. if(_this_value=="color_image"){
  904. _image_is_required = "required";
  905. }else{
  906. _image_is_required = "";
  907. $(".color-image-file").remove();
  908. }
  909. });
  910. @endif
  911. $("body").on("click",".delete-color",function(){
  912. var _id = $(this).data('id');
  913. var _this = $(this);
  914. if(confirm("Do you want to delete?")){
  915. $.ajax({
  916. type:"POST",
  917. url:"{!! env('APP_URL') !!}delete/color-image",
  918. data:{
  919. "id":_id,
  920. "_token":"{!! csrf_token() !!}"
  921. },
  922. success:function(){
  923. _this.parents("tr").remove();
  924. }
  925. });
  926. }
  927. });
  928. $("body").on("click",".delete-faq",function(){
  929. var _id = $(this).data('id');
  930. //alert(_id);
  931. var _this = $(this);
  932. if(confirm("Do you want to delete?")){
  933. $.ajax({
  934. type:"POST",
  935. url:"{!! env('APP_URL') !!}delete/faq",
  936. data:{
  937. "id":_id,
  938. "_token":"{!! csrf_token() !!}"
  939. },
  940. success:function(){
  941. _this.parents(".accordion-item").remove();
  942. }
  943. });
  944. }
  945. });
  946. $("body").on("click",".edit-faq",function(){
  947. var _id = $(this).data('id');
  948. $("#faq-form input[name=id]").val(_id);
  949. var _content = $(this).parents(".accordion-body").find('p').text();
  950. var _question = $(this).parents(".accordion-item").find('.accordion-button').text();
  951. $("#faq-form textarea[name=question]").val($.trim(_question));
  952. $("#faq-form textarea[name=answer]").val(_content);
  953. $("#add-new-faq").modal('show');
  954. });
  955. $("body").on("click",".save-faq",function(){
  956. if($("#faq-form").valid()){
  957. $("#faq-form").ajaxForm(function(response){
  958. location.reload();
  959. }).submit();
  960. }
  961. });
  962. $("body").on("click",".add-faq",function(){
  963. $("#add-new-faq").modal('show');
  964. });
  965. @if($business_type=="ClothsStore")
  966. var colors = [
  967. @foreach(\App\Colors::groupBy('color_code')->get() as $color)
  968. {
  969. id:"{!! $color->color_code !!}",
  970. text:"{!! $color->color_name !!}",
  971. html:'<div class="row" style="margin:0"><div style="width: 20px; height: 20px; background-color: {!! $color->color_code !!}; float: left; border-radius: 20px;"></div><div style="float: right; width: 250px">{!! addslashes($color->color_name) !!}</div></div>',
  972. },
  973. @endforeach
  974. ];
  975. function color_template(colors) {
  976. return colors.html;
  977. }
  978. function return_color_row(value){
  979. var str = "";
  980. $(value).each(function(i,v){
  981. str += '<tr>';
  982. str+='<td><div style="width: 20px; height: 20px; background-color: '+v+'; float: left; border-radius: 20px;"></div></td>';
  983. if(color_option=="color_image")
  984. str+='<td><input name="color_image['+v+']" type="file" class="form-control color-image-file" required />';
  985. str+='</tr>';
  986. });
  987. console.log("color_option: "+color_option+"\n--->Str: "+str)
  988. return str;
  989. }
  990. $("#color").select2({
  991. data: colors,
  992. templateResult: color_template,
  993. escapeMarkup: function(m) {
  994. return m;
  995. }
  996. }).on('change',function(){
  997. var _value = $(this).val();
  998. console.log("value :"+_value)
  999. var rows = return_color_row(_value);
  1000. $("#color-table tbody").html(rows);
  1001. });;
  1002. $("#size").select2();
  1003. @endif
  1004. $("body").on("click",".remove-image",function(){
  1005. var id = $(this).data('recipe-id');
  1006. var _this = $(this);
  1007. $.ajax({
  1008. url:"{!! env('APP_URL') !!}remove/recipe/main-image",
  1009. type:"POST",
  1010. data:{
  1011. id:id,
  1012. '_token':"{!! csrf_token() !!}"
  1013. },
  1014. success:function(){
  1015. _this.parents('.main-cover-image').find("#image-preview").removeAttr('style');
  1016. }
  1017. });
  1018. });
  1019. $.uploadPreview({
  1020. input_field: "#image-upload", // Default: .image-upload
  1021. preview_box: "#image-preview", // Default: .image-preview
  1022. label_field: "#image-label", // Default: .image-label
  1023. label_default: "Choose File", // Default: Choose File
  1024. label_selected: "Change File", // Default: Change File
  1025. no_label: true ,
  1026. success_callback: function() {
  1027. }// Default: false
  1028. });
  1029. $(".custom-select").select2();
  1030. $("body").on("click",".make-mandatory-item",function () {
  1031. $(".alert").hide();
  1032. if($("#mandatory-item-form").valid()){
  1033. $("#mandatory-item-form").ajaxForm(function (response) {
  1034. response = $.parseJSON(response);
  1035. if(response){
  1036. if(response.type=="success"){
  1037. $('#mandatory-item-form .alert.success').html(response.message);
  1038. $('#mandatory-item-form .alert.success').show();
  1039. setTimeout(function(){
  1040. location.reload();
  1041. },2000)
  1042. }else{
  1043. $('#mandatory-item-form .alert.error').html(response.message);
  1044. $('#mandatory-item-form .alert.error').show();
  1045. }
  1046. }
  1047. }).submit();
  1048. }
  1049. });
  1050. $("body").on("click",".is_mandatory",function () {
  1051. var id = $(this).data('id');
  1052. if($(this).is(":checked")){
  1053. $("#mandatory-extra-item-option").modal('show');
  1054. $("#mandatory-extra-item-option input[name=id]").val(id);
  1055. }else{
  1056. if(confirm("Do you want disable this option?")){
  1057. $.ajax({
  1058. url:"{!! env('APP_URL') !!}remove/mandatory/"+id,
  1059. success:function () {
  1060. location.reload();
  1061. }
  1062. });
  1063. }else{
  1064. return false;
  1065. }
  1066. }
  1067. });
  1068. $("body").on('click','.save',function () {
  1069. var _this = $(this);
  1070. if($("#restaurant-form").valid()){
  1071. _this.removeClass('save');;
  1072. _this.html(spinner);
  1073. //return false;
  1074. $("#restaurant-form").ajaxForm(function (response) {
  1075. //_this.removeAttr('disabled');
  1076. response = $.parseJSON(response);
  1077. if(response){
  1078. if(response.type=="success"){
  1079. $('#restaurant-form .alert.success').html(response.message);
  1080. $('#restaurant-form .alert.success').show();
  1081. setTimeout(function(){
  1082. //window.location = '{!! env('APP_URL') !!}recipes';
  1083. location.reload();
  1084. },2000)
  1085. }else{
  1086. $('#restaurant-form .alert.error').html(response.message);
  1087. $('#restaurant-form .alert.error').show();
  1088. }
  1089. }
  1090. }).submit();
  1091. }
  1092. });
  1093. @if( isset($recipe))
  1094. $("body").on("click",".upload-gallery",function () {
  1095. $("#upload-gallery").modal('show');
  1096. });
  1097. $("body").on("click",".add-options",function () {
  1098. $("#extra-options").modal('show');
  1099. });
  1100. $("body").on("click",".add-new-items",function () {
  1101. var id = $(this).data('id');
  1102. $("input[name=extra_option_id]").val(id);
  1103. $("#add-new-items").modal('show');
  1104. });
  1105. $("body").on("click",".add-sub-item",function () {
  1106. var id = $(this).data('id');
  1107. var extra_option_id = $(this).data('extra-option-id');
  1108. $("input[name=parent_id]").val(id);
  1109. $("input[name=extra_option_id]").val(extra_option_id);
  1110. $("#add-new-items").modal('show');
  1111. });
  1112. $("body").on("click",".add-extra-items",function () {
  1113. var new_item = add_new_item();
  1114. $("#items-list").append(new_item);
  1115. });
  1116. $("body").on("click",".add-extra-items-2",function () {
  1117. var new_item = add_new_item();
  1118. $("#items-list-2").append(new_item);
  1119. });
  1120. $("body").on("click",".delete-item",function () {
  1121. var _this = $(this);
  1122. var id = $(this).data('id');
  1123. $.ajax({
  1124. url:"{!! env('APP_URL') !!}extra/item/delete/"+id,
  1125. success:function (response) {
  1126. _this.parent().parent().remove();
  1127. }
  1128. });
  1129. });
  1130. $("body").on("click",".delete-new-item",function () {
  1131. $(this).parent().parent().remove();
  1132. });
  1133. $("body").on("click",".delete-option",function () {
  1134. var _this = $(this);
  1135. var id = $(this).data('id');
  1136. $.ajax({
  1137. url:"{!! env('APP_URL') !!}extra/option/delete/"+id,
  1138. success:function (response) {
  1139. _this.parent().parent().remove();
  1140. }
  1141. });
  1142. //
  1143. });
  1144. $("body").on("click",".update-option",function () {
  1145. if($("#edit-form").valid()){
  1146. $("#edit-form").ajaxForm(function (response) {
  1147. location.reload();
  1148. }).submit();
  1149. }
  1150. });
  1151. $("body").on("click",".update-item",function () {
  1152. if($("#edit-item-form").valid()){
  1153. $("#edit-item-form").ajaxForm(function (response) {
  1154. var id = extra_option_id;
  1155. $.ajax({
  1156. url:"{!! env('APP_URL') !!}view/items/"+id,
  1157. success:function (response) {
  1158. response = response.data;
  1159. var row = "";
  1160. $.each(response,function (i,v) {
  1161. row+=show_item(v);
  1162. });
  1163. $("#item-table > tbody").html(row);
  1164. $("#edit-extra-item-option").modal('hide');
  1165. }
  1166. });
  1167. }).submit();
  1168. }
  1169. });
  1170. $("body").on("click",".edit-option",function () {
  1171. var id = $(this).data('id');
  1172. $.ajax({
  1173. url:"{!! env('APP_URL') !!}edit/option/"+id,
  1174. success:function (response) {
  1175. response = response.data;
  1176. $("#edit-form input[name=id]").val(response.id);
  1177. $("#edit-form input[name=option]").val(response.name);
  1178. $("#edit-form input[name=arabic_option]").val(response.name_arabic);
  1179. $("#edit-form input[name=price]").val(response.price);
  1180. $("#edit-extra-option").modal('show');
  1181. }
  1182. });
  1183. });
  1184. $("body").on("click",".edit-item",function () {
  1185. var id = $(this).data('id');
  1186. $.ajax({
  1187. url:"{!! env('APP_URL') !!}edit/item/"+id,
  1188. success:function (response) {
  1189. response = response.data;
  1190. $("#edit-item-form input[name=id]").val(response.id);
  1191. $("#edit-item-form input[name=item_type]").val(response.item_type);
  1192. $("#edit-item-form input[name=option]").val(response.name);
  1193. $("#edit-item-form input[name=name_arabic]").val(response.name_arabic);
  1194. $("#edit-item-form input[name=price]").val(response.price);
  1195. $("#edit-extra-item-option").modal('show');
  1196. }
  1197. });
  1198. });
  1199. $("body").on("click",".view-items",function () {
  1200. var id = $(this).data('id');
  1201. extra_option_id = id;
  1202. $.ajax({
  1203. url:"{!! env('APP_URL') !!}view/items/"+id,
  1204. success:function (response) {
  1205. response = response.data;
  1206. var row = "";
  1207. $.each(response,function (i,v) {
  1208. row+=show_item(v);
  1209. });
  1210. $("#item-table > tbody").html(row);
  1211. $("#extra-option-item").modal('show');
  1212. }
  1213. });
  1214. });
  1215. $("body").on("click",".save-extra-options",function () {
  1216. if($("#extra-options-form").valid()){
  1217. $("#extra-options-form").ajaxForm(function (response) {
  1218. response = $.parseJSON(response);
  1219. if(response){
  1220. if(response.type=="success"){
  1221. $('#extra-options .alert.success').html(response.message);
  1222. $('#extra-options .alert.success').show();
  1223. setTimeout(function(){
  1224. window.location.reload();
  1225. },2000)
  1226. }else{
  1227. $('#extra-options .alert.error').html(response.message);
  1228. $('#extra-options .alert.error').show();
  1229. }
  1230. }
  1231. }).submit();
  1232. }
  1233. });
  1234. $("body").on("click",".save-extra-items",function () {
  1235. if($("#extra-items-form").valid()){
  1236. $("#extra-items-form").ajaxForm(function (response) {
  1237. response = $.parseJSON(response);
  1238. if(response){
  1239. if(response.type=="success"){
  1240. $('#extra-items-form .alert.success').html(response.message);
  1241. $('#extra-items-form .alert.success').show();
  1242. setTimeout(function(){
  1243. window.location.reload();
  1244. },2000)
  1245. }else{
  1246. $('#extra-items-form .alert.error').html(response.message);
  1247. $('#extra-items-form .alert.error').show();
  1248. }
  1249. }
  1250. }).submit();
  1251. }
  1252. });
  1253. var gallery = new Dropzone("div#gallery",
  1254. {
  1255. paramName: "files", // The name that will be used to transfer the file
  1256. addRemoveLinks: true,
  1257. uploadMultiple: true,
  1258. autoProcessQueue: false,
  1259. parallelUploads: 50,
  1260. maxFilesize: 5, // MB
  1261. acceptedFiles: ".png, .jpeg, .jpg, .JPG, .JPEG, .PNG,",
  1262. url: "{!! env('APP_URL') !!}upload/gallery/recipe",
  1263. });
  1264. gallery.on("sending", function(file, xhr, formData) {
  1265. var filenames = [];
  1266. $('.dz-preview .dz-filename').each(function() {
  1267. filenames.push($(this).find('span').text());
  1268. });
  1269. formData.append('filenames', filenames);
  1270. formData.append('_token','{!! csrf_token() !!}');
  1271. formData.append('recipe_id',"{!! $recipe->id !!}");
  1272. });
  1273. /* Add Files Script*/
  1274. gallery.on("success", function(file, message){
  1275. $("#msg").html(message);
  1276. //setTimeout(function(){window.location.href="index.php"},200);
  1277. });
  1278. gallery.on("error", function (data) {
  1279. $("#msg").html('<div class="alert alert-danger">There is some thing wrong, Please try again!</div>');
  1280. });
  1281. gallery.on("complete", function(file) {
  1282. gallery.removeFile(file);
  1283. location.reload();
  1284. });
  1285. $(".upload").on("click",function (e){
  1286. gallery.processQueue();
  1287. e.preventDefault();
  1288. });
  1289. $("body").on("click",".delete-image",function () {
  1290. var _this = $(this);
  1291. var id = $(this).data('id');
  1292. $.ajax({
  1293. url:"{!! env('APP_URL') !!}delete/image/"+id+"?type=recipe",
  1294. success:function (response) {
  1295. _this.parents(".gallery").remove();
  1296. }
  1297. });
  1298. });
  1299. $("body").on("click",".delete-image",function () {
  1300. var _this = $(this);
  1301. var id = $(this).data('id');
  1302. $.ajax({
  1303. url:"{!! env('APP_URL') !!}delete/image/"+id+"?type=recipe",
  1304. success:function (response) {
  1305. _this.parents(".gallery").remove();
  1306. }
  1307. });
  1308. });
  1309. @endif
  1310. });
  1311. function add_new_item() {
  1312. return '<div class="row" style="margin-top: 10px">\n' +
  1313. ' <div class="col-sm-3">\n' +
  1314. ' <input class="form-control" name="item_name[]" placeholder="Name of item">\n' +
  1315. ' </div>\n' +
  1316. ' <div class="col-sm-3">\n' +
  1317. ' <input class="form-control" name="item_name_arabic[]" placeholder="Name of item">\n' +
  1318. ' </div>\n' +
  1319. '<div class="col-sm-3">\n' +
  1320. ' <select class="form-control" name="item_type[]">' +
  1321. '<option value="option">Option Button</option>' +
  1322. '<option value="check-box">Checkbox</option> </select>\n' +
  1323. ' </div>\n' +
  1324. ' <div class="col-sm-2">\n' +
  1325. ' <input class="form-control" name="item_price[]" placeholder="Price if it has">\n' +
  1326. ' </div>\n' +
  1327. ' <div class="col-sm-1">\n' +
  1328. ' <a href="#!" class="delete-new-item btn btn-sm btn-danger" style="margin-top: 3px"><i class="glyphicon glyphicon-trash"></i> </a> \n' +
  1329. ' </div>\n' +
  1330. ' </div>'
  1331. }
  1332. function show_item(item) {
  1333. var str = "<tr>";
  1334. str+='<td>'+item.name+'</td>';
  1335. str+='<td>'+item.name_arabic+'</td>';
  1336. str+='<td>'+item.price+'</td>';
  1337. str+='<td>'+(item.item_type?item.item_type:"")+'</td>';
  1338. str+='<td>';
  1339. var list = "";
  1340. if(item.childern){
  1341. if(item.childern.length > 0){
  1342. list = '<ul class="list-group">';
  1343. $.each(item.childern,function (i,v) {
  1344. list += '<li class="list-group-item d-flex justify-content-between align-items-center"><a href="#!" class="edit-item" data-id="'+v.id+'"> '+v.name+'</a>' +
  1345. '<span class="badge badge-primary badge-pill">'+v.price+'</span>' +
  1346. '</li>';
  1347. });
  1348. list += "</ul>";
  1349. }
  1350. }
  1351. str+=list;
  1352. str+='</td>';
  1353. str+='<td>' +
  1354. '<a href="#!" class="btn btn-sm btn-primary edit-item" data-id="'+item.id+'" data-toggle="tooltip" data-placement="top" title="Edit"><i class="glyphicon glyphicon-edit"></i> </a>'+
  1355. ' <a href="javascript:;" data-id="'+item.id+'" class="btn btn-sm btn-danger delete-item"><i class="glyphicon glyphicon-trash" data-toggle="tooltip" data-placement="top" title="Delete"></i></a>'+
  1356. ' <a href="javascript:;" data-id="'+item.id+'" data-extra-option-id="'+item.extra_option_id+'" class="btn btn-sm btn-warning add-sub-item"><i class="glyphicon glyphicon-th-list" data-toggle="tooltip" data-placement="top" title="Add sub items"></i></a>'
  1357. '</td>';
  1358. str+='</tr>';
  1359. return str;
  1360. }
  1361. </script>
  1362. @endsection