application.js 3.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114
  1. // Some general UI pack related JS
  2. // Extend JS String with repeat method
  3. String.prototype.repeat = function(num) {
  4. return new Array(num + 1).join(this);
  5. };
  6. (function($) {
  7. // Add segments to a slider
  8. $.fn.addSliderSegments = function (amount, orientation) {
  9. return this.each(function () {
  10. if (orientation == "vertical") {
  11. var output = ''
  12. , i;
  13. for (i = 1; i <= amount - 2; i++) {
  14. output += '<div class="ui-slider-segment" style="top:' + 100 / (amount - 1) * i + '%;"></div>';
  15. };
  16. $(this).prepend(output);
  17. } else {
  18. var segmentGap = 100 / (amount - 1) + "%"
  19. , segment = '<div class="ui-slider-segment" style="margin-left: ' + segmentGap + ';"></div>';
  20. $(this).prepend(segment.repeat(amount - 2));
  21. }
  22. });
  23. };
  24. $(function() {
  25. // Todo list
  26. $(".todo").on('click', 'li', function() {
  27. $(this).toggleClass("todo-done");
  28. });
  29. // Custom Selects
  30. $("select[name='huge']").selectpicker({style: 'btn-hg btn-primary', menuStyle: 'dropdown-inverse'});
  31. $("select[name='herolist']").selectpicker({style: 'btn-primary', menuStyle: 'dropdown-inverse'});
  32. $("select[name='info']").selectpicker({style: 'btn-info'});
  33. // Tooltips
  34. $("[data-toggle=tooltip]").tooltip("show");
  35. // Tags Input
  36. $(".tagsinput").tagsInput();
  37. // jQuery UI Sliders
  38. var $slider = $("#slider");
  39. if ($slider.length) {
  40. $slider.slider({
  41. min: 1,
  42. max: 5,
  43. value: 2,
  44. orientation: "horizontal",
  45. range: "min"
  46. }).addSliderSegments($slider.slider("option").max);
  47. }
  48. var $verticalSlider = $("#vertical-slider");
  49. if ($verticalSlider.length) {
  50. $verticalSlider.slider({
  51. min: 1,
  52. max: 5,
  53. value: 3,
  54. orientation: "vertical",
  55. range: "min"
  56. }).addSliderSegments($verticalSlider.slider("option").max, "vertical");
  57. }
  58. // Placeholders for input/textarea
  59. $(":text, textarea").placeholder();
  60. // Focus state for append/prepend inputs
  61. $('.input-group').on('focus', '.form-control', function () {
  62. $(this).closest('.input-group, .form-group').addClass('focus');
  63. }).on('blur', '.form-control', function () {
  64. $(this).closest('.input-group, .form-group').removeClass('focus');
  65. });
  66. // Make pagination demo work
  67. $(".pagination").on('click', "a", function() {
  68. $(this).parent().siblings("li").removeClass("active").end().addClass("active");
  69. });
  70. $(".btn-group").on('click', "a", function() {
  71. $(this).siblings().removeClass("active").end().addClass("active");
  72. });
  73. // Disable link clicks to prevent page scrolling
  74. $(document).on('click', 'a[href="#fakelink"]', function (e) {
  75. e.preventDefault();
  76. });
  77. // Switch
  78. $("[data-toggle='switch']").wrap('<div class="switch" />').parent().bootstrapSwitch();
  79. // Typeahead
  80. if($('#typeahead-demo-01').length) {
  81. $('#typeahead-demo-01').typeahead({
  82. name: 'states',
  83. limit: 4,
  84. local: ["Alabama","Alaska","Arizona","Arkansas","California","Colorado","Connecticut",
  85. "Delaware","Florida","Georgia","Hawaii","Idaho","Illinois","Indiana","Iowa","Kansas","Kentucky",
  86. "Louisiana","Maine","Maryland","Massachusetts","Michigan","Minnesota","Mississippi","Missouri",
  87. "Montana","Nebraska","Nevada","New Hampshire","New Jersey","New Mexico","New York","North Dakota",
  88. "North Carolina","Ohio","Oklahoma","Oregon","Pennsylvania","Rhode Island","South Carolina",
  89. "South Dakota","Tennessee","Texas","Utah","Vermont","Virginia","Washington","West Virginia","Wisconsin","Wyoming"]
  90. });
  91. }
  92. // make code pretty
  93. window.prettyPrint && prettyPrint();
  94. });
  95. })(jQuery);