2 /* - popupforms.js - */
4 Set up standard Plone popups
6 Provides globals: common_content_filter
8 Extends jQuery.tools.overlay.conf to set up common Plone effects and
13 var common_content_filter
= '#content>*:not(div.configlet),dl.portalMessage.error,dl.portalMessage.info';
15 jQuery
.extend(jQuery
.tools
.overlay
.conf
,
19 mask
:{color
:'#fff',opacity
: 0.4,loadSpeed
:0,closeSpeed
:0}
26 $.plonepopups
= $.plonepopups
|| {};
28 $.extend($.plonepopups
,
30 // method to show error message in a noform
32 noformerrorshow
: function noformerrorshow(el
, noform
) {
34 emsg
= o
.find('dl.portalMessage.error');
36 o
.children().replaceWith(emsg
);
42 // After deletes we need to redirect to the target page.
43 redirectbasehref
: function redirectbasehref(el
, responseText
) {
44 var mo
= responseText
.match(/<base href="(\S+?)"/i);
45 if (mo
.length
=== 2) {
55 if (jQuery
.browser
.msie
&& parseInt(jQuery
.browser
.version
, 10) < 7) {
56 // it's not realistic to think we can deal with all the bugs
57 // of IE 6 and lower. Fortunately, all this is just progressive
63 $('#portal-personaltools a[href$="/login"], #portal-personaltools a[href$="/login_form"], .discussion a[href$="/login"], .discussion a[href$="/login_form"]').prepOverlay(
66 filter
: common_content_filter
,
67 formselector
: 'form#login_form',
69 if (location
.href
.search(/pwreset_finish$/) >= 0) {
75 redirect: function () {
76 var href
= location
.href
;
77 if (href
.search(/pwreset_finish$/) >= 0) {
78 return href
.slice(0, href
.length
-14) + 'logged_in';
87 $('#siteaction-contact a').prepOverlay(
90 filter
: common_content_filter
,
91 formselector
: 'form[name="feedback_form"]',
92 noform: function(el
) {return $.plonepopups
.noformerrorshow(el
, 'close');}
97 $('form[name=reply]').prepOverlay(
100 filter
: common_content_filter
,
101 formselector
: 'form:has(input[name="discussion_reply:method"])',
102 noform: function(el
) {return $.plonepopups
.noformerrorshow(el
, 'redirect');},
103 redirect
: $.plonepopups
.redirectbasehref
108 // display: select content item / change content item
109 $('#contextSetDefaultPage, #folderChangeDefaultPage').prepOverlay(
112 filter
: common_content_filter
,
113 formselector
: 'form[name="default_page_form"]',
114 noform: function(el
) {return $.plonepopups
.noformerrorshow(el
, 'reload');},
115 closeselector
: '[name=form.button.Cancel]',
121 // This form needs additional JS and CSS for the calendar widget.
122 // The AJAX form doesn't load it from the javascript_head_slot.
123 // $('dl#plone-contentmenu-workflow a#advanced').prepOverlay(
126 // filter: common_content_filter,
127 // formselector: 'form',
128 // noform: function(el) {return $.plonepopups.noformerrorshow(el, 'reload');},
129 // closeselector: '[name=form.button.Cancel]'
134 $('dl#plone-contentmenu-actions a#delete').prepOverlay(
137 filter
: common_content_filter
,
138 formselector
: '#delete_confirmation',
139 noform: function(el
) {return $.plonepopups
.noformerrorshow(el
, 'redirect');},
140 redirect
: $.plonepopups
.redirectbasehref
,
141 closeselector
: '[name=form.button.Cancel]',
147 $('dl#plone-contentmenu-actions a#rename').prepOverlay(
150 filter
: common_content_filter
,
151 closeselector
: '[name=form.button.Cancel]',
157 $('#portal-personaltools a[href$="/@@register"]').prepOverlay(
160 filter
: common_content_filter
,
161 formselector
: 'form.kssattr-formname-register'
165 // add new user, group
166 $('form[name=users_add], form[name=groups_add]').prepOverlay(
169 filter
: common_content_filter
,
170 formselector
: 'form.kssattr-formname-new-user, form[name="groups"]',
171 noform: function(el
) {return $.plonepopups
.noformerrorshow(el
, 'redirect');},
172 redirect: function () {return location
.href
;}
176 // Content history popup
177 $('#content-history a').prepOverlay({
179 filter
: 'h2, #content-history',
180 urlmatch
: '@@historyview',
181 urlreplace
: '@@contenthistorypopup'