2b5a9420d378bc21cf05060dddc68556ae7ed906
[redakcja.git] / redakcja / static / js / catalogue / catalogue.js
1 (function($) {
2     $(function() {
3
4
5         $('.filter').change(function() {
6             document.filter[this.name].value = this.value;
7             document.filter.submit();
8         });
9
10         $('.check-filter').change(function() {
11             document.filter[this.name].value = this.checked ? '1' : '';
12             document.filter.submit();
13         });
14
15         $('.text-filter').each(function() {
16             var inp = this;
17             $(inp).parent().submit(function() {
18                 document.filter[inp.name].value = inp.value;
19                 document.filter.submit();
20                 return false;
21             });
22         });
23
24
25         $('.autoslug-source').change(function() {
26             $('.autoslug').attr('value', slugify(this.value));
27         });
28
29
30         var nowTemp = new Date();
31         var now = new Date(nowTemp.getFullYear(), nowTemp.getMonth(), nowTemp.getDate(), 0, 0, 0, 0);
32
33         $('.datepicker-field').each(function() {
34             var checkout = $(this).datepicker({
35                 format: 'yyyy-mm-dd',
36                 weekStart: 1,
37                 onRender: function(date) {
38                     return date.valueOf() < now.valueOf() ? 'disabled' : '';
39                 },
40             }).on('changeDate', function(ev) {
41                 checkout.hide();
42             }).data('datepicker');
43         });
44
45
46         $("select").change(function() {
47             var helpdiv = $(this).next();
48             if (helpdiv.hasClass('help-text')) {
49                 var helptext = $("option:selected", this).attr('data-help');
50                 helpdiv.html($("option:selected", this).attr('data-help') || '');
51             }
52         });
53
54
55
56         // tutorial mode
57         var tutorial;
58         var start;
59
60         var first_reset = true;
61         function tutreset() {
62             if (start) $(start).popover('hide');
63             start = null;
64
65             tutorial = $.makeArray($('[data-toggle="tutorial"]').sort(
66                 function(a, b) {return $(a).attr('data-tutorial') < $(b).attr('data-tutorial') ? -1 : 1}
67             ));
68
69             if (first_reset) {
70                 $.each(tutorial, function(i, e) {
71                     var but = (i < tutorial.length - 1) ? '>>' : 'OK';
72                     $(e).popover({
73                         title: 'Tutorial',
74                         trigger: 'focus',
75                         template: '<div class="popover" role="tooltip"><div class="arrow"></div><h3 class="popover-title"></h3><div class="popover-content"></div><div><a class="btn btn-default tutorial-off" href="#-" id="tutoff'+i+'">&times;</a><a style="float:right" class="btn btn-default tutorial-next" href="#-" id="nt'+i+'">' + but + '</a></div></div>'
76                     }).on('shown.bs.popover', function () {
77                         if (!$(e).data('tut-yet')) {
78                             $("#tutoff"+i).on('click', tutoff);
79                             $("#nt"+i).on('click', tut);
80                             $(e).data('tut-yet', 'yes');
81                         }
82                     });
83                     //$(start).on('hide.bs.popover', tut);
84                 });
85                 first_reset = false;
86             }
87         }
88         
89         function tuton() {
90             sessionStorage.setItem("tutorial", "on");
91             tutreset();
92             $('#tutModal').modal('show');
93             return false;
94         }
95         function tutoff() {
96             if (start) $(start).popover('hide');
97             start = null;
98             sessionStorage.removeItem("tutorial");
99             return false;
100         }
101         function tut() {
102             if (start) $(start).popover('hide');
103             if (tutorial.length) {
104                 start = tutorial.shift();
105                 $(start).popover('show');
106                 //~ if (!$(start).data('tut-yet')) {
107                     //~ $(".popover .tutorial-off").on('click', tutoff);
108                     //~ $(".popover .tutorial-next").on('click', tut);
109                     //~ $(start).data('tut-yet', 'yes');
110                 //~ }
111             }
112             else {
113                 start = null;
114             }
115             return false;
116         }
117         $('#tutModal').on('hidden.bs.modal', tut);
118         
119         if (sessionStorage.getItem("tutorial") == "on" && $("#tuton").length == 0) {
120             tutreset();
121             tut();
122         }
123         $("#tuton").on('click', tuton);
124
125
126     });
127 })(jQuery);
128