PageRenderTime 48ms CodeModel.GetById 18ms RepoModel.GetById 0ms app.codeStats 0ms

/assets/js/devawok/devawok.js

https://gitlab.com/dev.absar/awok.io
JavaScript | 574 lines | 293 code | 233 blank | 48 comment | 53 complexity | 827d390b77681d9adcfea265cc2529de MD5 | raw file
  1. // devAwokInit() this function for Angular Usage
  2. //devAwokInit()
  3. function devAwokInit(){
  4. jQuery(document).ready(function($) {
  5. // Dropdown Item
  6. $('.aw_dropdown > button').bind( 'click', function( e ){
  7. e.preventDefault();
  8. var pos = 'left';
  9. var screen = $(document).innerWidth() / 2;
  10. if( $(this).offset().left >= screen ){ pos = 'right'; }
  11. if( $(this).next().hasClass('active') ){
  12. $(this).next('div').removeClass('active').css( pos ,'0px').fadeOut(123);
  13. } else {
  14. $('.aw_dropdown div').hide().removeClass('active');
  15. $(this).next('div').addClass('active').css( pos ,'0px').fadeIn(123);
  16. }
  17. });
  18. // Tabs
  19. $('.aw_tabs ol li').bind('click', function( e ){
  20. e.preventDefault();
  21. if( $(this).parent().parent().hasClass('nojs') ){
  22. return false;
  23. } else {
  24. $(this).parent().parent().find('ul').find('li').removeClass('active').hide();
  25. $(this).parent().parent().find('ol').find('li').removeClass('active');
  26. var ind = $(this).index();
  27. $(this).addClass('active');
  28. $(this).parent().next().find('li').eq(ind).show().addClass('active');
  29. }
  30. });
  31. // Accordion
  32. $('.aw_accordion ul li.header').bind('click', function( e ){
  33. e.preventDefault();
  34. if( $(this).next().find('div').hasClass('active') ){
  35. $(this).next().find('div').slideUp( 333 , function(){
  36. $(this).removeClass('active');
  37. })
  38. return false;
  39. }
  40. $(this).parent().parent().find('div').removeClass( 'active' );
  41. $(this).parent().parent().find('div').slideUp( 333 );
  42. $(this).next().find('div').slideToggle( 333 ).addClass('active');
  43. });
  44. // Tool Tip
  45. $(document).bind('mouseover', function( e ){
  46. var tooltip_top = $($(e.target)[0]).attr('data-tooltip-top');
  47. var tooltip_left = $($(e.target)[0]).attr('data-tooltip-left');
  48. var tooltip_right = $($(e.target)[0]).attr('data-tooltip-right');
  49. var tooltip_bottom = $($(e.target)[0]).attr('data-tooltip-bottom');
  50. if( tooltip_top ){
  51. var text = tooltip_top;
  52. $($(e.target)[0]).parent().append('<span class="tooltip tooltip_top">'+ text +'</span>');
  53. var width = $($(e.target)[0]).innerWidth();
  54. var height = $($(e.target)[0]).innerHeight();
  55. var tWidth = $('.tooltip').innerWidth();
  56. var tHeight = $('.tooltip').innerHeight();
  57. var top = $(e.target)[0].offsetTop;
  58. var left = $(e.target)[0].offsetLeft;
  59. $('.tooltip').css({
  60. 'top': top - tHeight - 6 ,
  61. 'left': left - tWidth /2 + width /2
  62. })
  63. }
  64. if (tooltip_left){
  65. var text = tooltip_left;
  66. $($(e.target)[0]).parent().append('<span class="tooltip tooltip_left">'+ text +'</span>');
  67. var width = $($(e.target)[0]).innerWidth();
  68. var height = $($(e.target)[0]).innerHeight();
  69. var tWidth = $('.tooltip').innerWidth();
  70. var tHeight = $('.tooltip').innerHeight();
  71. var top = $(e.target)[0].offsetTop;
  72. var left = $(e.target)[0].offsetLeft;
  73. $('.tooltip').css({
  74. 'top': top + height / 2 - tHeight / 2,
  75. 'left': left - tWidth - 5
  76. })
  77. }
  78. if (tooltip_right){
  79. var text = tooltip_right;
  80. $($(e.target)[0]).parent().append('<span class="tooltip tooltip_right">'+ text +'</span>');
  81. var width = $($(e.target)[0]).innerWidth();
  82. var height = $($(e.target)[0]).innerHeight();
  83. var tWidth = $('.tooltip').innerWidth();
  84. var tHeight = $('.tooltip').innerHeight();
  85. var top = $(e.target)[0].offsetTop;
  86. var left = $(e.target)[0].offsetLeft;
  87. $('.tooltip').css({
  88. 'top': top + height / 2 - tHeight / 2,
  89. 'left': left + width + 7
  90. })
  91. }
  92. if (tooltip_bottom){
  93. var text = tooltip_bottom;
  94. $($(e.target)[0]).after('<span class="tooltip tooltip_bottom">'+ text +'</span>');
  95. var width = $($(e.target)[0]).innerWidth();
  96. var height = $($(e.target)[0]).innerHeight();
  97. var tWidth = $('.tooltip').innerWidth();
  98. var top = $(e.target)[0].offsetTop
  99. var left = $(e.target)[0].offsetLeft
  100. $('.tooltip').css({
  101. 'top': top + height + 10,
  102. 'left': left - tWidth /2 + width /2
  103. })
  104. }
  105. }).bind('mouseout', function( e ){
  106. $('.tooltip').remove();
  107. })
  108. // Toggle
  109. $( '*' ).on('click', function( e ){
  110. var toggle = $($(e.target)[0]).attr('data-toggle');
  111. var toggleOpt = $($(e.target)[0]).attr('data-toggle-options')
  112. if( toggle || toggleOpt ){
  113. if (toggleOpt) {
  114. var a = toggleOpt.split(' ');
  115. if( a[0] == 'fade'){
  116. $( '.'+toggle ).fadeToggle( a[1] );
  117. return false;
  118. } else if( a[0] == 'slide') {
  119. $( '.'+toggle ).slideToggle( a[1] );
  120. return false;
  121. }
  122. } else {
  123. $( '.'+toggle ).slideToggle( 333 );
  124. }
  125. }
  126. })
  127. // Tags
  128. $('.aw_tags input[type="text"]').bind( 'keydown', function( e ){
  129. $(this).removeClass('error');
  130. if( e.which == 13 ){
  131. var text = $(this).val();
  132. var len = $(this).parent().find('li').length
  133. for( var i=0; i < len; i++ ){
  134. var current = $(this).parent().find('li').eq(i).text()
  135. if( current == text ){
  136. $(this).addClass('error');
  137. return false;
  138. }
  139. }
  140. $(this).before('<li>'+ text +'</li>');
  141. $(this).val('');
  142. }
  143. })
  144. $(document).on('dblclick', '.aw_tags li', function(){
  145. $(this).remove();
  146. })
  147. $('.aw_range').each(function(){
  148. var range = $(this).attr('data-from-to').split(',')
  149. var width = $(this).parent().innerWidth();
  150. // Range Limit Options
  151. $(this).jRange({
  152. from: range[0],
  153. to: range[1],
  154. step: 1,
  155. format: '%s',
  156. width: width,
  157. showLabels: true,
  158. isRange : true
  159. });
  160. });
  161. // Other Options
  162. /* $('.range-slider').jRange({
  163. from: 0,
  164. to: 100,
  165. step: 1,
  166. scale: [0,25,50,75,100],
  167. format: '%s',
  168. width: 300,
  169. showLabels: true,
  170. isRange : true
  171. }); */
  172. // Single Side ranger
  173. /*$('.single-slider').jRange({
  174. from: -2.0,
  175. to: 2.0,
  176. step: 0.5,
  177. scale: [-2.0,-1.0,0.0,1.0,2.0],
  178. format: '%s',
  179. width: 300,
  180. showLabels: true,
  181. snap: true
  182. }); */
  183. // Date and Time Picker
  184. $.datetimepicker.setLocale('en');
  185. $('.aw_datetime').datetimepicker();
  186. $('.aw_date').datetimepicker({timepicker:false, format:'d/m/Y' });
  187. $('.aw_time').datetimepicker({datepicker:false, format:'H:i' });
  188. // Data table
  189. $('.aw_datatable').each(function(){
  190. $(this).DataTable({
  191. 'bFilter': false,
  192. 'bLengthChange': false
  193. });
  194. })
  195. // Carousel
  196. $(".aw_carousel").each(function(){
  197. var options = $(this).attr('data-carousel');
  198. var item, nav, loop, rewind, rtl, drag;
  199. eval('var obj='+options);
  200. if( obj.item ){ item = obj.item; } else { item = 1; }
  201. if( obj.loop == true ){ loop = true } else { loop = false }
  202. if( obj.nav == true ){ nav = true } else { nav = false }
  203. if( obj.rewind == true ){ rewind = true } else { rewind = false }
  204. if( obj.rtl == true ){ rtl = true } else { rtl = false }
  205. if( obj.drag == true ){ drag = true } else { drag = false }
  206. $(this).owlCarousel({
  207. rtl : rtl,
  208. items : item,
  209. nav : nav,
  210. smartSpeed : 900,
  211. lazyLoad : true,
  212. loop : loop,
  213. mouseDrag : drag
  214. }).on('changed.owl.carousel', update_pagination );
  215. if( rewind == true ){
  216. $(this).on('click', '.owl-next', function(e) {
  217. if( slide_clicked != 'Y' ){ $(this).trigger('to.owl.carousel',0); }
  218. slide_clicked = 'N';
  219. });
  220. $(this).on('click', '.owl-prev', function(e) {
  221. if( slide_clicked != 'Y' ){ $(this).trigger('to.owl.carousel',500); }
  222. slide_clicked = 'N';
  223. });
  224. }
  225. function update_pagination(){
  226. slide_clicked = 'Y';
  227. }
  228. var slide_clicked = '';
  229. })
  230. // HZoom Image Zoomer
  231. if( typeof is_rtl != 'undefined' ){
  232. // RTL
  233. var rtl_dir = true;
  234. var zoom_dir = 'left';
  235. window.zoom_adjust = 48; // HOVER HZOOMER ADJUST
  236. window.h_area_dp_none = 'display:none;'; // HIDING ZOOM POINTER BOUNDARY
  237. }
  238. else{
  239. // OTHERS
  240. var rtl_dir = false;
  241. var zoom_dir = 'right';
  242. window.zoom_adjust = 0;
  243. window.h_area_dp_none = '';
  244. }
  245. $('.aw_hzoom').each(function(){
  246. $(this).find('img').ImageZoom({
  247. type: 'standard',
  248. bigImageSrc: $(this).find('img').attr('data-hzoom'),
  249. zoomSize: [ 600, $(this).height() + 22 ],
  250. alignTo: $(this).parent().attr('id') , // 'align-zoom'
  251. margin:10,
  252. offset: [0, 0],
  253. preload: false,
  254. zoomViewerClass: 'standardViewer',
  255. position: zoom_dir // for RTL
  256. });
  257. })
  258. // Star Ratings
  259. var current = 0;
  260. $('.aw_rating').each(function(){
  261. var rate = $(this).find('span').attr('data-rate')
  262. $(this).find('span').css('width', rate );
  263. $(this).on('mousemove',function(e){
  264. if( e.offsetX >= 5 ){
  265. $(this).find('span').css('width', '20%');
  266. current = 1
  267. }if( e.offsetX >= 20 ){
  268. $(this).find('span').css('width', '40%');
  269. current = 2
  270. }if( e.offsetX >= 35 ){
  271. $(this).find('span').css('width', '60%');
  272. current = 3
  273. }if( e.offsetX >= 45 ){
  274. $(this).find('span').css('width', '80%');
  275. current = 4
  276. }if( e.offsetX >= 60 ){
  277. $(this).find('span').css('width', '100%');
  278. current = 5
  279. }
  280. }).mouseout(function(){
  281. $(this).find('span').css('width', rate );
  282. }).click(function(){
  283. $(this).find('span').attr('rating', current )
  284. })
  285. })
  286. function aw_ratings( dom ){
  287. var a = $(dom).find('span').attr('rating')
  288. return a;
  289. }
  290. $('.aw_rating').click(function(){
  291. //rating
  292. var a = aw_ratings($(this))
  293. console.log( a )
  294. })
  295. $(document).on('click', '.aw_ajax input[type="button"]' ,function(e){
  296. e.stopPropagation();
  297. var type = $(this).parent().attr('method');
  298. var data = $(this).serialize();
  299. var self = $(this);
  300. $.ajax({
  301. type : 'GET',
  302. //dataType: "html",
  303. url : window.location.href.split('?')[0],
  304. data : {
  305. data
  306. },success:function( response ) {
  307. //self.hide();
  308. // console.log( response.find('.aw_ajax') )
  309. console.log( response )
  310. }
  311. });
  312. })
  313. // Close all Companent
  314. $(document).on('click', function( e ){
  315. var str = $(e.target)[0].parentElement.className;
  316. if( !$(e.target).parentsUntil('aw_dropdown').hasClass('aw_dropdown') ){
  317. $('.aw_dropdown div').hide().removeClass('active');
  318. }
  319. if( $($(e.target)[0]).hasClass('aw_modal') || $($(e.target)[0]).hasClass('close_icon') ){
  320. $('.aw_modal').hide();
  321. }
  322. });
  323. // End jQuery
  324. });
  325. }
  326. // Initializing all DOM Elements
  327. function initDOM(){
  328. $('.aw_dropdown div').hide().removeClass('active');
  329. $('.aw_modal').hide();
  330. }
  331. // temp use only
  332. $(function(){
  333. // modal 1
  334. $('.js_modal').bind('click', function( e ){
  335. $('.modal_one').show();
  336. })
  337. // Modal 2
  338. $('.js_modal2').bind('click', function( e ){
  339. $('.modal_two').show();
  340. })
  341. })