@extends('layouts.app')

@section('content')
<section class="page-header row">
	<h2> {{ $pageTitle }} </h2>
	<ol class="breadcrumb">
		<li><a href="{{ url('') }}"> Dashboard </a></li>
		<li><a href="{{ url('/manage/'.$pageModule) }}"> {{ $pageTitle }} </a></li>
		<li class="active"> Form  </li>		
	</ol>
</section>
<div class="page-content row">
	<div class="page-content-wrapper no-margin">
	
	{!! Form::open(array('url'=>'/manage/cashbackpayoutmethods?return='.$return, 'class'=>'form-vertical validated','files' => true )) !!}
	<input type="hidden" name="status_type" value="{{ $pageTitle }}" />
	
		<div class="sbox-title clearfix">
			<div class="sbox-tools pull-right" >
				<a href="{{ url('/manage/'.$pageModule.'?return='.$return) }}" class="tips btn btn-sm "  title="{{ __('core.btn_back') }}" ><i class="fa  fa-times"></i></a> 
			</div>
			<div class="sbox-tools1 pull-left1" >
				<button name="apply" class="btn btn-sm btn-primary  "  title="{{ __('core.btn_back') }}" ><i class="fa  fa-check"></i> {{ __('core.sb_apply') }} </button>
				<button name="save" class="btn btn-sm btn-success"  title="{{ __('core.btn_back') }}" ><i class="fa  fa-paste"></i> {{ __('core.sb_save') }} </button> 
				<?php if($frontendSlug!='') {
				$fsconfig = explode('@',$frontendSlug);
				if( ($row[$fsconfig[1]]) ) 
				echo '<a  class="btn btn-sm btn-outline-primary" target="_blank"  title="FrontEnd" href="'. (config('website.cnf_appurl') .'/'.config('website.cnf_lang') . str_replace('//','/',('/'.$fsconfig[0].'/'.$row[$fsconfig[1]]))).'"><i class="fa  fa-desktop"></i> FrontEnd</a>';
				 } ?>
			</div>
		</div>	
		<div class="sbox1">
		<div class="sbox-content clearfix row">
		<div class="col-xs-12">
	<ul class="parsley-error-list">
		@foreach($errors->all() as $error)
			<li>{{ $error }}</li>
		@endforeach
	</ul>		

	<?php $curTime = time();?>

<div class="sbox1"><div class="col-md-6">
						<fieldset class="sbox" style="border-top:0; border-radius: 5px;"><legend> cashbackpayoutmethods</legend>
				<?php if( !isset($row['id']))  $row['id'] = null;   ?>
		<input  type='hidden' name='id' id='id' value='{{$row['id']}}' />
									
									  <div class="form-group  depen-  wrap-user_id  " >
										<label for="ipt" class=" control-label "> User  <span class="asterix"> * </span>  </label>
										
										
										  <?php if( !isset($row['user_id']))  $row['user_id'] = null;   ?>
		 
					<?php $row['user_id'] = trim($row['user_id'],'[]'); ?>

					 <select name='user_id' rows='5' id='user_id' class='select2 '  data-placeholder='Select User'   placeholder='Select User' required     ></select> 						
									  </div> 					
									  <div class="form-group  depen-  wrap-name  " >
										<label for="ipt" class=" control-label "> Name  <span class="asterix"> * </span>  </label>
										
										
										  <?php if( !isset($row['name']))  $row['name'] = null;   ?>
		<input  type='text' name='name' id='name' value='{{ $row['name'] }}' 
						required       class='form-control input-sm ' /> 						
									  </div> 					
									  <div class="form-group  depen-  wrap-method_code  " >
										<label for="ipt" class=" control-label "> Method Code  <span class="asterix"> * </span>  </label>
										
										
										  <?php if( !isset($row['method_code']))  $row['method_code'] = null;   ?>
		 
					<?php $row['method_code'] = trim($row['method_code'],'[]'); ?>

					 <select name='method_code' rows='5' id='method_code' class='select2 '  data-placeholder='Select Method Code'   placeholder='Select Method Code' required     ></select> 						
									  </div>
							<div class="form-group  depen-  wrap-account  " >
								<label for="ipt" class=" control-label "> Account  <span class="asterix"> * </span>  </label>
								<?php if( !isset($row['account']))  $row['account'] = null;   ?>
								<input  type='text' name='account' id='account' value='{{ $row['account'] }}'
										required       class='form-control input-sm ' />
							</div>
						</fieldset>
			</div>
			
			<div class="col-md-6">
						<fieldset class="sbox" style="border-top:0; border-radius: 5px;"><legend> </legend>
									  <div class="form-group  depen-  wrap-enabled  " >
										<label for="ipt" class=" control-label "> Enabled  <span class="asterix"> * </span>  </label>
										
										
										  <?php if( strlen($row['enabled']) < 1 )  $row['enabled']  = '0'; 	  ?>
		<div class='switch-wrap'> <label class='switch'>
				    <input type='hidden' name='enabled' value ='0' />
					<input type='checkbox' name='enabled' value ='1' 
					@if($row['enabled']) checked @endif 
					 />   <span class="slider round"></span></label></div> 						
									  </div>
							<div class="form-group  depen-  wrap-payout_data  ">
								<label for="ipt" class=" control-label "> Payout Data <span
											class="asterix"> * </span> </label>

								<textarea name='payout_data' rows='5' id='json_input_payout_data'
										  class='form-control hidden input-sm  '
										  required>{{ $row['payout_data'] ?: '{}' }}</textarea>

								<pre id='json-display_payout_data'></pre>

								<script type='text/javascript'>
									function getJson() {
										try {
											return JSON.parse($('#json_input_payout_data').val());
										} catch (ex) {
											alert('Wrong JSON Format: ' + ex);
										}
									}

									var editor = new JsonEditor('#json-display_payout_data', getJson());
									$('#json_input_payout_data').on('change', function () {
										editor.load(getJson());

									});

									const targetNode = document.querySelector('#json-display_payout_data');
									const observer = new MutationObserver(function(mutationsList) {
										for (let mutation of mutationsList) {
											if (mutation.type === 'childList' || mutation.type === 'characterData') {
												$('#json_input_payout_data').val($(targetNode).text());
											}
										}
									});

									// Start observing
									observer.observe(targetNode, {
										childList: true,
										subtree: true,
										characterData: true
									});

								</script>


							</div>
						</fieldset>
			</div>
			
			
		</div>
		
		
</div>
</div>
</div>
@include('/manage/'.$pageModule.'/subform')

		
		
		<div class="sbox-title clearfix">
			<div class="sbox-tools pull-right" >
				<a href="{{ url('/manage/'.$pageModule.'?return='.$return) }}" class="tips btn btn-sm "  title="{{ __('core.btn_back') }}" ><i class="fa  fa-times"></i></a> 
			</div>
			<div class="sbox-tools pull-left" >
				<button name="apply" class=" btn btn-sm btn-primary  "  title="{{ __('core.btn_back') }}" ><i class="fa  fa-check"></i> {{ __('core.sb_apply') }} </button>
				<button name="save" class=" btn btn-sm btn-success"  title="{{ __('core.btn_back') }}" ><i class="fa  fa-paste"></i> {{ __('core.sb_save') }} </button> 
			</div>
		</div>	
		
	
	
	<input type="hidden" name="action_task" value="save" />
	{!! Form::close() !!}
	</div>
</div>		

	
		 
   <script type="text/javascript">
	$(document).ready(function() { 
		
		
		
		$("#user_id").select2({
			ajax: {
				url: "{{url('/manage/cashbackpayoutmethods/ajaxselect?filter=users:user_id:first_name|last_name|email')}}",
				data: function (params) {
					return {
						search: params.term,
						page: params.page || 1
					};
				},
				dataType: 'json',
				processResults: function (data) {
					data.page = data.page || 1;
					return {
						results: data.items.map(function (item) {
							return {
								id: item.user_id,
								text: selctToJson(item,'first_name|last_name|email')
							};
						}),
						pagination: {
							more: data.pagination
						}
					}
				},
				cache: true,
				delay: 250
			},
			// minimumInputLength: 2,
			multiple: 0,
			width:'100%'
		});
		

		@if( strlen($row["user_id"]) > 0  )
		// Fetch the preselected item, and add to the control
			var user_idSelect = $('#user_id');
			$.ajax({
				type: 'GET',
				url: "{!! url('/manage/cashbackpayoutmethods/ajaxselect?filter=users:user_id:first_name|last_name|email&values='.urlencode($row["user_id"])) !!}",
			}).then(function (data) {
				// create the option and append to Select2
				data.items.map(function (item) {
											var option = new Option(selctToJson(item,'first_name|last_name|email'), item.user_id, true, true);
											user_idSelect.append(option).trigger('change');

										});


				// manually trigger the `select2:select` event
				user_idSelect.trigger({
					type: 'select2:select',
					params: {
						data: data
					}
				});
			});

			user_idSelect.select2_sortable();
			@endif

		
		$("#method_code").select2({
			ajax: {
				url: "{{url('/manage/cashbackpayoutmethods/ajaxselect?filter=payout_methods:code:code')}}",
				data: function (params) {
					return {
						search: params.term,
						page: params.page || 1
					};
				},
				dataType: 'json',
				processResults: function (data) {
					data.page = data.page || 1;
					return {
						results: data.items.map(function (item) {
							return {
								id: item.code,
								text: selctToJson(item,'code')
							};
						}),
						pagination: {
							more: data.pagination
						}
					}
				},
				cache: true,
				delay: 250
			},
			// minimumInputLength: 2,
			multiple: 0,
			width:'100%'
		});
		

		@if( strlen($row["method_code"]) > 0  )
		// Fetch the preselected item, and add to the control
			var method_codeSelect = $('#method_code');
			$.ajax({
				type: 'GET',
				url: "{!! url('/manage/cashbackpayoutmethods/ajaxselect?filter=payout_methods:code:code&values='.urlencode($row["method_code"])) !!}",
			}).then(function (data) {
				// create the option and append to Select2
				data.items.map(function (item) {
											var option = new Option(selctToJson(item,'code'), item.code, true, true);
											method_codeSelect.append(option).trigger('change');

										});


				// manually trigger the `select2:select` event
				method_codeSelect.trigger({
					type: 'select2:select',
					params: {
						data: data
					}
				});
			});

			method_codeSelect.select2_sortable();
			@endif

		 		 

		$('.removeMultiFiles').on('click',function(){
			var removeUrl = '{{ url("cashbackpayoutmethods/removefiles?file=")}}'+$(this).attr('url');
			$(this).parent().remove();
			$.get(removeUrl,function(response){});
			$(this).parent('div').empty();	
			return false;
		});

		const payoutMethods = @json($methods);
		$('#method_code').on('change', function () {
			let selectedCode = $('#method_code').val();
			let selectedCodeFields = JSON.parse(payoutMethods[selectedCode].fields);
			let newPayoutData = {};
			selectedCodeFields.forEach(function (field) {
				newPayoutData[field.key] = "";
			})
			@if( strlen($row["method_code"]) > 0  )
			if (selectedCode == '{{$row["method_code"]}}') {
				newPayoutData = JSON.parse('{!! $row['payout_data'] ?: '{}' !!}');
			}
			@endif
			$('#json_input_payout_data').val(JSON.stringify(newPayoutData)).trigger('change');
		});
	});
	</script>
@stop