translations.blade.php 8.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245
  1. @extends('layouts.app')
  2. @section('css')
  3. <link href="{!! env('APP_ASSETS') !!}css/dashboard.css" rel="stylesheet" type="text/css">
  4. @endsection
  5. @section('content')
  6. <div class="content-wrapper">
  7. <div class="container-full">
  8. <section class="content">
  9. <div class="row">
  10. <div class="col-6"><h3 style="margin-left: 10px">Lable Translations for : <span class="badge badge-info">{!! $translation_for !!}</span>
  11. </h3></div>
  12. <div class="col-6 text-end">
  13. <a href="#!" class="btn btn-sm btn-danger float-right add-new"><i class="glyphicon glyphicon-plus"></i> Add New </a>
  14. <a href="#!" class="btn btn-sm btn-primary float-right download" data-lang="en"><i class="glyphicon glyphicon-download"></i>
  15. @if($translation_for=='admin')
  16. <span>UPDATE EN</span>
  17. @else
  18. <span>Download EN</span>
  19. @endif
  20. </a>
  21. <a href="#!" class="btn btn-sm btn-primary float-right download" data-lang="ar"><i class="glyphicon glyphicon-download"></i>
  22. @if($translation_for=='admin')
  23. <span>UPDATE AR</span>
  24. @else
  25. <span>Download AR</span>
  26. @endif
  27. </a>
  28. </div>
  29. </div>
  30. <div class="row">
  31. <div class="col-xl-12">
  32. <div class="card mb-4">
  33. <div class="card-body">
  34. <div class="table-responsive">
  35. <table class="table table-bordered" id="dataTable" width="100%" cellspacing="0">
  36. <thead>
  37. <tr class="text-uppercase">
  38. <th width="20%">Key</th>
  39. <th width="25%">EN</th>
  40. <th width="25%">AR</th>
  41. <th width="20%">Action</th>
  42. </tr>
  43. </thead>
  44. <tbody>
  45. <!----><!---->
  46. @if(isset($translations) && count($translations) > 0)
  47. @foreach($translations as $k=>$translation)
  48. <tr>
  49. <td>{!! $k !!}</td>
  50. <td width="45%">{!! isset($translation['en'])?$translation['en']:"" !!}</td>
  51. <td>{!! isset($translation['ar'])?$translation['ar']:"" !!}</td>
  52. <td>
  53. <a href="#!" class="btn btn-sm btn-primary edit-translation" data-id="{!! $k !!}" data-toggle="tooltip" data-placement="top" title="Edit"><i class="glyphicon glyphicon-edit"></i></a>
  54. </td>
  55. </tr>
  56. @endforeach
  57. @endif
  58. </tbody>
  59. </table>
  60. </div>
  61. </div>
  62. </div>
  63. </div>
  64. </div>
  65. </section>
  66. </div>
  67. </div>
  68. <div class="modal" id="create-translation" tabindex="-1" role="dialog">
  69. <div class="modal-dialog" role="document">
  70. <div class="modal-content">
  71. <div class="modal-header">
  72. <h5 class="modal-title">Add/Update Translation </h5>
  73. <button type="button" class="close close-modal" data-dismiss="modal" aria-label="Close">
  74. <span aria-hidden="true">&times;</span>
  75. </button>
  76. </div>
  77. <div class="modal-body">
  78. <form id="translation-form" action="{!! env('APP_URL') !!}save/translation" enctype="multipart/form-data" method="POST">
  79. @csrf
  80. <input type="hidden" name="type" value="{!! $translation_for !!}" />
  81. <input type="hidden" name="id" />
  82. <div class="form-group" id="item_key">
  83. <label>Item Key</label>
  84. <input type="text" class="form-control" name="item_key" required />
  85. </div>
  86. <div class="form-group">
  87. <label>Text in English</label>
  88. <input type="text" class="form-control" name="item_en" required />
  89. </div>
  90. <div class="form-group">
  91. <label>Text in Arabic</label>
  92. <input type="text" class="form-control" name="item_ar" required />
  93. </div>
  94. </form>
  95. <div class="row mt-2">
  96. <div class="col-md-12">
  97. <div class="alert alert-success success"></div>
  98. <div class="alert alert-danger error"></div>
  99. </div>
  100. </div>
  101. </div>
  102. <div class="modal-footer">
  103. <button type="button" class="btn btn-primary save-translation">Save</button>
  104. <button type="button" class="btn btn-secondary close-modal" data-dismiss="modal">Close</button>
  105. </div>
  106. </div>
  107. </div>
  108. </div>
  109. @endsection
  110. @section('js')
  111. <script src="{!! env("APP_ASSETS") !!}js/dataTables.editor.min.js"></script>
  112. <script>
  113. var resto_id = 0;
  114. $(function () {
  115. $("body").on("click",".edit-translation",function(){
  116. var _key = $(this).data('id');
  117. $("#create-translation input[name=id]").val(_key);
  118. var _this = $(this);
  119. $("input[name=item_key]").removeAttr('required');
  120. $("#item_key").hide();
  121. var _english = $(this).parents("tr").find("td:eq(1)").text();
  122. var _arabic = $(this).parents("tr").find("td:eq(2)").text();
  123. $("input[name=item_en]").val(_english);
  124. $("input[name=item_ar]").val(_arabic);
  125. $("#create-translation").modal('show');
  126. });
  127. $("body").on("click",".add-new",function(){
  128. $("input[name=item_en]").val('');
  129. $("input[name=item_ar]").val('');
  130. $("input[name=item_key]").attr('required','required');
  131. $("#item_key").show();
  132. $("#create-translation").modal('show');
  133. });
  134. $("body").on("click",".close-modal",function(){
  135. $("#create-translation").modal('hide');
  136. });
  137. $("body").on("click",".download",function(){
  138. var _lang = $(this).data('lang');
  139. var _type = "{!! $translation_for !!}";
  140. if(_type=="admin"){
  141. $.ajax({
  142. url:"{!! env('APP_URL') !!}download/translation/"+_lang+"/"+_type,
  143. success:function(response){
  144. if(_type=="admin")
  145. alert('Downloaded');
  146. else{
  147. //window.location=response;
  148. // var a = document.createElement('a')
  149. // a.href=response;
  150. // a.download='translation.json';
  151. // document.body.append(a);
  152. }
  153. }
  154. });
  155. }else{
  156. window.location = "{!! env('APP_URL') !!}download/translation/"+_lang+"/"+_type;
  157. }
  158. });
  159. $("body").on("click",".save-translation",function(){
  160. if($("#translation-form").valid()){
  161. $("#translation-form").ajaxForm(function(response){
  162. if(response){
  163. if(response.type=="success"){
  164. $('#translation-form .alert.success').html(response.message);
  165. $('#translation-form .alert.success').show();
  166. setTimeout(function(){
  167. //window.location = '{!! env('APP_URL') !!}recipes';
  168. location.reload();
  169. },2000)
  170. }else{
  171. $('#translation-form .alert.error').html(response.message);
  172. $('#translation-form .alert.error').show();
  173. }
  174. }
  175. }).submit();
  176. }
  177. });
  178. $('#dataTable').DataTable({
  179. "bSort": true,
  180. "searching": true,
  181. "paging": true,
  182. "info": true,
  183. language: {
  184. paginate: {
  185. next: '<img src="{!! env("APP_ASSETS") !!}images/icons/next.png">', // or '→'
  186. previous: '<img src="{!! env("APP_ASSETS") !!}images/icons/preivew.png">' // or '←'
  187. }
  188. },
  189. });
  190. })
  191. </script>
  192. @endsection