recipe_form_new.blade.php 67 KB

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