weekly back-to-dev release 2.7dev
[moodle.git] / message / module.js
CommitLineData
8a811c56 1M.core_message = M.core_message || {};
5f3bf83f 2
e44bc5a1 3M.core_message.init_focus = function(Y, eid) {
5f3bf83f 4 document.getElementById(eid).focus();
1d236fef 5};
5f3bf83f 6
5f3bf83f 7M.core_message.init_refresh_page = function(Y, delay, url) {
e5e50970
DP
8 var delay_callback = function() {
9 document.location.replace(url);
10 };
11 setTimeout(delay_callback, delay);
1d236fef 12};
c8621a02 13
c8621a02
AD
14M.core_message.combinedsearchgotfocus = function(e) {
15 if (e.target.get('value')==this.defaultsearchterm) {
16 e.target.select();
17 }
1d236fef 18};
b32778c4
AD
19
20M.core_message.init_notification = function(Y, title, content, url) {
21 Y.use('overlay', function() {
22 var o = new Y.Overlay({
23 headerContent : title,
8a811c56 24 bodyContent : content
b32778c4
AD
25 });
26 o.render(Y.one(document.body));
78e873c8 27
8a811c56
AD
28 if (Y.UA.ie > 0 && Y.UA.ie < 7) {
29 // Adjust for IE 6 (can't handle fixed pos)
30 //align the bottom right corner of the overlay with the bottom right of the viewport
31 o.set("align", {
32 points:[Y.WidgetPositionAlign.BR, Y.WidgetPositionAlign.BR]
33 });
1d236fef 34 }
78e873c8
AD
35
36 Y.one('#notificationyes').on('click', function(e) {
b32778c4
AD
37 window.location.href = url;
38 }, o);
78e873c8
AD
39 Y.one('#notificationno').on('click', function(e) {
40 o.hide();
41 e.preventDefault();
42 return false;
43 }, o);
b32778c4 44 });
1d72e9d4
RK
45};
46
47M.core_message.init_defaultoutputs = function(Y) {
48 var defaultoutputs = {
49
50 init : function() {
51 Y.all('#defaultmessageoutputs select').each(function(node) {
52 // attach event listener
53 node.on('change', defaultoutputs.changeState);
54 // set initial layout
55 node.simulate("change");
56 }, this);
57 },
58
59 changeState : function(e) {
60 var value = e.target._node.options[e.target.get('selectedIndex')].value;
61 var parentnode = e.target.ancestor('td');
62 switch (value) {
63 case 'forced':
64 defaultoutputs.updateCheckboxes(parentnode, 1, 1);
65 break;
66 case 'disallowed':
67 defaultoutputs.updateCheckboxes(parentnode, 1, 0);
68 break;
69 case 'permitted':
70 defaultoutputs.updateCheckboxes(parentnode, 0, 0);
71 break;
72 }
73 },
74
75 updateCheckboxes : function(blocknode, disabled, checked) {
76 blocknode.all('input[type=checkbox]').each(function(node) {
77 node.removeAttribute('disabled');
78 if (disabled) {
79 node.setAttribute('disabled', 1)
80 node.removeAttribute('checked');
81 }
82 if (checked) {
83 node.setAttribute('checked', 1)
84 }
85 }, this);
86 }
87 }
88
89 defaultoutputs.init();
bb3546f3
AD
90}
91
92M.core_message.init_editsettings = function(Y) {
93 var editsettings = {
94
95 init : function() {
96 var disableall = Y.one(".disableallcheckbox");
97 disableall.on('change', editsettings.changeState);
98 disableall.simulate("change");
99 },
100
101 changeState : function(e) {
102 Y.all('.notificationpreference').each(function(node) {
103 var disabled = e.target.get('checked');
104
105 node.removeAttribute('disabled');
106 if (disabled) {
107 node.setAttribute('disabled', 1)
108 }
109 }, this);
110 }
111 }
112
113 editsettings.init();
e5e50970 114}