Advertisement
Guest User

Untitled

a guest
Oct 15th, 2019
90
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 9.14 KB | None | 0 0
  1. <link href="{{ asset('/assets/js/plugins/jstree/themes/default/style.min.css') }}" rel="stylesheet">
  2. <link href="{{ asset('/assets/js/plugins/jstree/themes/default-dark/style.min.css') }}" rel="stylesheet">
  3. <script src="{{ asset('/assets/js/plugins/jstree/jstree.min.js') }}" async></script>
  4. <script type="text/javascript">
  5. addressbook = {
  6. target : null,
  7. tree : null,
  8. selected : null,
  9. open : function(id){
  10. removeDataTable();
  11. // console.log($('.txt-addressbook')[2].getElementsByTagName("option")[0].text);
  12.  
  13. var dataLen = $('.txt-addressbook')[2].getElementsByTagName("option").length;
  14. for (i = 0; i < dataLen ; i++)
  15. {
  16. var text = $('.txt-addressbook')[2].options[i].text;
  17. var idnode = $('.txt-addressbook')[2].options[i].value;
  18. }
  19.  
  20. console.log($('.btn-addressbook'));
  21. // console.log($('.btn-addressbook')[0].parentNode.querySelector('#addressbook-selected').);
  22.  
  23.  
  24. $('#modal-addressbook').modal('show');
  25. /**************************************** Init ****************************************/
  26. addressbook.target = $("#" + id);
  27. addressbook.tree = $('#tree-addressbook');
  28. addressbook.selected = $('#addressbook-selected');
  29.  
  30. /**************************************** Tree Structure ****************************************/
  31.  
  32. addressbook.tree
  33. .on('changed.jstree', function (e, data) {
  34. var node = data.node;
  35. if(!node.children.length){
  36. addressbook.add({id : node.id, text : node.text});
  37. }
  38. })
  39. .jstree({core : {data : {url: "/addressbook/childnode",
  40. 'data' : function (node) {
  41. return { 'id' : node.id };
  42. }
  43.  
  44. }}
  45. });
  46.  
  47.  
  48. /**************************************** Tree Selected ****************************************/
  49.  
  50. var dataSelected = [];
  51. addressbook.selected.jstree({'core' : {'data' : 'dataSelected', 'check_callback' : true},
  52. "plugins" : [ "dnd","contextmenu"]});
  53.  
  54. var select = addressbook.get();
  55. for(var i in select){
  56. $('#addressbook-selected').jstree().delete_node([select[i]]);
  57. $('#addressbook-selected').jstree("refresh");
  58. }
  59. },
  60.  
  61.  
  62. add : function(node){
  63. console.log(node);
  64. var selected = addressbook.get();
  65. var doit = true;
  66. for(var i in selected){if(selected[i].id === node.id){doit = false}}
  67. if(doit){addressbook.selected.jstree('create_node', '#', node, 'last')}
  68. },
  69.  
  70. get : function(){
  71. return addressbook.selected.jstree()._model.data;
  72. },
  73.  
  74. remove : function(){
  75. var select = addressbook.get();
  76. for(var i in select){
  77. $('#addressbook-selected').jstree().delete_node([select[i]]);
  78. $('#addressbook-selected').jstree("refresh");
  79. }
  80. },
  81.  
  82. save : function(){
  83. addressbook.target.children().remove();
  84. var selected = addressbook.get();
  85.  
  86. for(var i in selected){
  87. if(selected[i].id !== "#"){
  88. addressbook.target.append("<option value='" + selected[i].id + "' selected>" + selected[i].text + "</option>");
  89. }
  90. }
  91.  
  92. $('#modal-addressbook').modal('hide');
  93. }
  94. };
  95.  
  96.  
  97. // var node = {
  98. // "id": "7",
  99. // "name": "GM/Muhammad Irfan"
  100. // };
  101. window.onload = function(){
  102. $('#btn-search').click(function () {
  103. // displayLoader();
  104. var name = $('#search-address').val();
  105. $.ajax({
  106. type: "GET",
  107. url: "/addressbook/GetData",
  108. data: {
  109. 'data': name
  110. },
  111. success: function (response) {
  112.  
  113. $('#table-search tbody').empty();
  114. var tb = document.getElementById('table-search').getElementsByTagName('tbody')[0];
  115. var arr = tb.getElementsByTagName("tr");
  116.  
  117. for(i = 0; i<response['mess'].length; i++)
  118. {
  119. $('#table-search tbody').append(`<tr id="${response['idOrg'][i]}" class="selected"><td>${response['mess'][i]}</td></tr>`);
  120. arr[i].addEventListener('click', function () {
  121. // console.log($(this).attr('id'));
  122. // console.log(this.getElementsByTagName("td")[0].innerHTML);
  123. addNode($(this).attr('id'), this.getElementsByTagName("td")[0].innerHTML);
  124. });
  125.  
  126.  
  127. }
  128. }
  129.  
  130. })
  131. });
  132.  
  133.  
  134.  
  135. $("#search-address").on('keydown', function (e) {
  136. if(e.keyCode == 8){
  137. $('#table-search tbody').empty();
  138. }
  139. })
  140. };
  141.  
  142. function addNode(id, name) {
  143. var node = {
  144. 'id': id,
  145. 'text': name
  146. };
  147. addressbook.add(node)
  148. }
  149.  
  150.  
  151. function removeDataTable() {
  152. $('#search-address').val("");
  153. $('#table-search tbody').empty();
  154. $("#JSTreeRes").text("Find Employee...");
  155. }
  156.  
  157. // function displayLoader() {
  158. // $('#divLoading').css("visibility", "visible");
  159. // }
  160. //
  161. // function hideLoader() {
  162. // $('#divLoading').css("visibility", "hidden");
  163. // }
  164. </script>
  165.  
  166. <div id="modal-addressbook" class="modal fade addressbook" tabindex="-1" role="dialog" data-backdrop="static" data-keyboard="false">
  167. <div class="modal-dialog" role="document">
  168. <div class="modal-content modal-addressbook">
  169. <div class="modal-header">
  170. <button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">&times;</span></button>
  171. <h4 class="modal-title">Addressbook</h4>
  172. </div>
  173. <div class="modal-body">
  174. <div class="tabs-container" style="width: 400px;">
  175. <ul class="nav nav-tabs" role="tablist">
  176. <li class="active"><a class="nav-link active" data-toggle="tab" href="#addressbook-tab-1">Organization Structure</a></li>
  177. <li><a class="nav-link" data-toggle="tab" href="#addressbook-tab-2">Employee</a></li>
  178. </ul>
  179. <div class="tab-content" >
  180. <div role="tabpanel" id="addressbook-tab-1" class="tab-pane active" >
  181. <div class="panel-body addressbook-content">
  182. <div id="tree-addressbook"></div>
  183. </div>
  184. </div>
  185. <div role="tabpanel" id="addressbook-tab-2" class="tab-pane">
  186. <div class="panel-body addressbook-content">
  187. <div class="form-inline">
  188. <label>Cari User</label>
  189. <input type="text" class="form-control" name="search-address" id="search-address" placeholder="Search..">
  190. <button class="btn btn-primary glyphicon glyphicon-search" id="btn-search" type="button"></button>
  191. </div>
  192. <table class="table table-hover" id="table-search">
  193. <thead>
  194. <tr>
  195. <th>Name</th>
  196. </tr>
  197. </thead>
  198. <tbody id="tbodyid">
  199. <tr>
  200. <td id="JSTreeRes"></td>
  201. </tr>
  202. </tbody>
  203. </table>
  204. </div>
  205. </div>
  206. </div>
  207. </div>
  208. <div class="addressbook-selected" style="width: 350px;">
  209. <h4>Selected</h4>
  210. <div id="addressbook-selected"></div>
  211. </div>
  212. </div>
  213. <div class="modal-footer">
  214. <button type="button" class="btn btn-default" onclick="addressbook.remove()">Hapus</button>
  215. <button type="button" class="btn btn-default" data-dismiss="modal">Cancel</button>
  216. <button type="button" class="btn btn-primary" onclick="addressbook.save()">OK</button>
  217. </div>
  218. </div>
  219. </div>
  220. {# <div id="divLoading" class="divLoading" style="visibility:hidden">#}
  221. {# <img src="{{ asset('assets/font-awesome/load-spin.gif') }}">#}
  222. {# </div>#}
  223. </div>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement