PageRenderTime 53ms CodeModel.GetById 26ms RepoModel.GetById 1ms app.codeStats 0ms

/theme/bs2/ruby_on_rails/assets/javascripts/flatty/theme.js.coffee

https://gitlab.com/Petrohub/Petrohub_main
CoffeeScript | 231 lines | 128 code | 33 blank | 70 comment | 18 complexity | 0af437c02503c300e205bef4ce317d6f MD5 | raw file
  1. $(document).ready ->
  2. setScrollable()
  3. setTimeAgo()
  4. setAutoSize()
  5. setCharCounter()
  6. setMaxLength()
  7. setValidateForm()
  8. setSortable($(".sortable"))
  9. setSelect2()
  10. # --------------------------------------------------------------------------------------------------------------------
  11. # datetimepickers
  12. $(".datetimepicker").datetimepicker()
  13. $(".datepicker").datetimepicker
  14. pickTime: false
  15. $(".timepicker").datetimepicker
  16. pickDate: false
  17. # --------------------------------------------------------------------------------------------------------------------
  18. # --------------------------------------------------------------------------------------------------------------------
  19. # setting up basic wysiwyg
  20. $('.wysihtml5').wysihtml5();
  21. # --------------------------------------------------------------------------------------------------------------------
  22. # --------------------------------------------------------------------------------------------------------------------
  23. # setting up sortable list
  24. $('.dd').nestable()
  25. # --------------------------------------------------------------------------------------------------------------------
  26. # --------------------------------------------------------------------------------------------------------------------
  27. # setting up responsive tabs
  28. $('.nav-responsive.nav-pills, .nav-responsive.nav-tabs').tabdrop()
  29. # --------------------------------------------------------------------------------------------------------------------
  30. # --------------------------------------------------------------------------------------------------------------------
  31. # setting up naked password for password strength
  32. $("input.nakedpassword").nakedPassword
  33. path: "assets/images/plugins/naked_password/"
  34. # --------------------------------------------------------------------------------------------------------------------
  35. # --------------------------------------------------------------------------------------------------------------------
  36. # setting up datatables
  37. setDataTable($(".data-table"))
  38. setDataTable($(".data-table-column-filter"))
  39. # --------------------------------------------------------------------------------------------------------------------
  40. # --------------------------------------------------------------------------------------------------------------------
  41. # removes .box after click on .box-remove button
  42. $(".box .box-remove").live "click", (e) ->
  43. $(this).parents(".box").first().remove()
  44. e.preventDefault()
  45. return false
  46. # hides .box after click on .box-collapse
  47. $(".box .box-collapse").live "click", (e) ->
  48. box = $(this).parents(".box").first()
  49. box.toggleClass("box-collapsed")
  50. e.preventDefault()
  51. return false
  52. # --------------------------------------------------------------------------------------------------------------------
  53. # --------------------------------------------------------------------------------------------------------------------
  54. # setting up bootstrap popovers
  55. if Modernizr.touch == false
  56. $("body").on "mouseenter", ".has-popover", ->
  57. el = $(this)
  58. if el.data("popover") is `undefined`
  59. el.popover
  60. placement: el.data("placement") or "top"
  61. container: "body"
  62. el.popover "show"
  63. $("body").on "mouseleave", ".has-popover", ->
  64. $(this).popover "hide"
  65. # --------------------------------------------------------------------------------------------------------------------
  66. # --------------------------------------------------------------------------------------------------------------------
  67. # setting up bootstrap tooltips
  68. if Modernizr.touch == false
  69. $("body").on "mouseenter", ".has-tooltip", ->
  70. el = $(this)
  71. if el.data("tooltip") is `undefined`
  72. el.tooltip
  73. placement: el.data("placement") or "top"
  74. container: "body"
  75. el.tooltip "show"
  76. $("body").on "mouseleave", ".has-tooltip", ->
  77. $(this).tooltip "hide"
  78. # --------------------------------------------------------------------------------------------------------------------
  79. # --------------------------------------------------------------------------------------------------------------------
  80. # check all checkboxes in table with class only-checkbox
  81. $(".check-all").live "click", (e) ->
  82. $(this).parents("table:eq(0)").find(".only-checkbox :checkbox").attr "checked", @checked
  83. # --------------------------------------------------------------------------------------------------------------------
  84. # --------------------------------------------------------------------------------------------------------------------
  85. # color pickers
  86. $(".colorpicker-hex").colorpicker format: "hex"
  87. $(".colorpicker-rgb").colorpicker format: "rgb"
  88. # --------------------------------------------------------------------------------------------------------------------
  89. # --------------------------------------------------------------------------------------------------------------------
  90. # modernizr fallbacks
  91. unless Modernizr.input.placeholder
  92. $("[placeholder]").focus(->
  93. input = $(this)
  94. if input.val() is input.attr("placeholder")
  95. input.val ""
  96. input.removeClass "placeholder"
  97. ).blur(->
  98. input = $(this)
  99. if input.val() is "" or input.val() is input.attr("placeholder")
  100. input.addClass "placeholder"
  101. input.val input.attr("placeholder")
  102. ).blur()
  103. $("[placeholder]").parents("form").submit ->
  104. $(this).find("[placeholder]").each ->
  105. input = $(this)
  106. input.val "" if input.val() is input.attr("placeholder")
  107. # --------------------------------------------------------------------------------------------------------------------
  108. # --------------------------------------------------------------------------------------------------------------------
  109. # affixing main navigation
  110. unless $("body").hasClass("fixed-header")
  111. $('#main-nav.main-nav-fixed').affix
  112. offset: 40
  113. # --------------------------------------------------------------------------------------------------------------------
  114. # --------------------------------------------------------------------------------------------------------------------
  115. # setting bootstrap file input
  116. $('input[type=file]').bootstrapFileInput();
  117. # --------------------------------------------------------------------------------------------------------------------
  118. # --------------------------------------------------------------------------------------------------------------------
  119. # select2
  120. @setSelect2 = (selector = $(".select2")) ->
  121. selector.each (i, elem) ->
  122. $(elem).select2()
  123. # --------------------------------------------------------------------------------------------------------------------
  124. # --------------------------------------------------------------------------------------------------------------------
  125. # form validation
  126. @setValidateForm = (selector = $(".validate-form")) ->
  127. selector.each (i, elem) ->
  128. $(elem).validate
  129. errorElement: "span"
  130. errorClass: "help-block error"
  131. errorPlacement: (e, t) ->
  132. t.parents(".controls").append e
  133. highlight: (e) ->
  134. $(e).closest(".control-group").removeClass("error success").addClass "error"
  135. success: (e) ->
  136. e.closest(".control-group").removeClass("error")
  137. # --------------------------------------------------------------------------------------------------------------------
  138. # --------------------------------------------------------------------------------------------------------------------
  139. # autosize feature for expanding textarea elements
  140. @setDataTable = (selector) ->
  141. selector.each (i, elem) ->
  142. if $(elem).data("pagination-top-bottom") == true
  143. sdom = "<'row-fluid datatables-top'<'span6'l><'span6 text-right'pf>r>t<'row-fluid datatables-bottom'<'span6'i><'span6 text-right'p>>"
  144. else if $(elem).data("pagination-top") == true
  145. sdom = "<'row-fluid datatables-top'<'span6'l><'span6 text-right'pf>r>t<'row-fluid datatables-bottom'<'span6'i><'span6 text-right'>>"
  146. else
  147. sdom = "<'row-fluid datatables-top'<'span6'l><'span6 text-right'f>r>t<'row-fluid datatables-bottom'<'span6'i><'span6 text-right'p>>"
  148. dt = $(elem).dataTable
  149. sDom: sdom
  150. sPaginationType: "bootstrap"
  151. "iDisplayLength": $(elem).data("pagination-records") || 10
  152. oLanguage:
  153. sLengthMenu: "_MENU_ records per page"
  154. dt.columnFilter() if $(elem).hasClass("data-table-column-filter")
  155. # --------------------------------------------------------------------------------------------------------------------
  156. # --------------------------------------------------------------------------------------------------------------------
  157. # character counter
  158. @setMaxLength = (selector = $(".char-max-length")) ->
  159. selector.maxlength()
  160. # --------------------------------------------------------------------------------------------------------------------
  161. # --------------------------------------------------------------------------------------------------------------------
  162. # character counter
  163. @setCharCounter = (selector = $(".char-counter")) ->
  164. selector.charCount
  165. allowed: selector.data("char-allowed")
  166. warning: selector.data("char-warning")
  167. cssWarning: "text-warning"
  168. cssExceeded: "text-error"
  169. # --------------------------------------------------------------------------------------------------------------------
  170. # --------------------------------------------------------------------------------------------------------------------
  171. # autosize feature for expanding textarea elements
  172. @setAutoSize = (selector = $(".autosize")) ->
  173. selector.autosize()
  174. # --------------------------------------------------------------------------------------------------------------------
  175. # --------------------------------------------------------------------------------------------------------------------
  176. # timeago feature converts static time to dynamically refreshed
  177. @setTimeAgo = (selector = $(".timeago")) ->
  178. jQuery.timeago.settings.allowFuture = true
  179. jQuery.timeago.settings.refreshMillis = 60000
  180. selector.timeago();
  181. selector.addClass("in")
  182. # --------------------------------------------------------------------------------------------------------------------
  183. # --------------------------------------------------------------------------------------------------------------------
  184. # scrollable boxes
  185. @setScrollable = (selector = $(".scrollable")) ->
  186. selector.each (i, elem) ->
  187. $(elem).slimScroll
  188. height: $(elem).data("scrollable-height")
  189. start: $(elem).data("scrollable-start") || "top"
  190. # --------------------------------------------------------------------------------------------------------------------
  191. # --------------------------------------------------------------------------------------------------------------------
  192. # jquery-ui sortable
  193. @setSortable = (selector = null) ->
  194. if selector
  195. selector.sortable
  196. axis: selector.data("sortable-axis")
  197. connectWith: selector.data("sortable-connect")
  198. # --------------------------------------------------------------------------------------------------------------------