Mercurial > defr > drupal > popups
comparison popups.js @ 2:c076d54409cb
Popus: Version RF
| author | Franck Deroche <franck@defr.org> |
|---|---|
| date | Fri, 31 Dec 2010 13:46:12 +0100 |
| parents | 76f9b43738f2 |
| children |
comparison
equal
deleted
inserted
replaced
| 0:76f9b43738f2 | 2:c076d54409cb |
|---|---|
| 75 * Each popup object gets it's own set of options. | 75 * Each popup object gets it's own set of options. |
| 76 * These are the defaults. | 76 * These are the defaults. |
| 77 */ | 77 */ |
| 78 Popups.defaultOptions = { | 78 Popups.defaultOptions = { |
| 79 doneTest: null, // null, *path*, *regexp*. how do we know when a multiform flow is done? | 79 doneTest: null, // null, *path*, *regexp*. how do we know when a multiform flow is done? |
| 80 updateMethod: 'ajax', // none, ajax, reload, *callback* | 80 updateMethod: 'ajax', // none, ajax, reload, callback |
| 81 updateSource: 'initial', // initial, final. Only used if updateMethod != none. | 81 updateSource: 'initial', // initial, final. Only used if updateMethod != none. |
| 82 href: null, | 82 href: null, |
| 83 width: null, // Override the width specified in the css. | 83 width: null, // Override the width specified in the css. |
| 84 targetSelectors: null, // Hash of jQuery selectors that define the content to be swapped out. | 84 targetSelectors: null, // Hash of jQuery selectors that define the content to be swapped out. |
| 85 titleSelectors: null, // Array of jQuery selectors to place the new page title. | 85 titleSelectors: null, // Array of jQuery selectors to place the new page title. |
| 86 reloadOnError: false, // Force the entire page to reload if the popup href is unaccessable. | 86 reloadOnError: false, // Force the entire page to reload if the popup href is unaccessable. |
| 87 noMessage: false, // Don't show drupal_set_message messages. | 87 noMessage: false, // Don't show drupal_set_message messages. |
| 88 skipDirtyCheck: false, // If true, this popup will not check for edits on the originating page. | 88 skipDirtyCheck: false, // If true, this popup will not check for edits on the originating page. |
| 89 hijackDestination: true // Use the destiination param to force a form submit to return to the originating page. | 89 hijackDestination: true, // Use the destiination param to force a form submit to return to the originating page. |
| 90 onUpdate: null // Callback used for the updateMethod: 'callback' type | |
| 90 }; | 91 }; |
| 91 | 92 |
| 92 // *************************************************************************** | 93 // *************************************************************************** |
| 93 // Popups.Popup Object ******************************************************* | 94 // Popups.Popup Object ******************************************************* |
| 94 // *************************************************************************** | 95 // *************************************************************************** |
| 602 popup = Popups.activePopup(); | 603 popup = Popups.activePopup(); |
| 603 } | 604 } |
| 604 if (popup) { | 605 if (popup) { |
| 605 // console.log('removing '+popup.id); | 606 // console.log('removing '+popup.id); |
| 606 popup.$popup().remove(); | 607 popup.$popup().remove(); |
| 607 Popups.popupStack.splice(Popups.popupStack.indexOf(popup), 1); // Remove popup from stack. Probably should rework into .pop() | 608 // Popups.popupStack.splice(Popups.popupStack.indexOf(popup), 1); // Remove popup from stack. Probably should rework into .pop() |
| 609 Popups.popupStack.pop(); | |
| 608 } | 610 } |
| 609 // else { | 611 // else { |
| 610 // console.log("Popups.removePopup - there is no popup to remove."); | 612 // console.log("Popups.removePopup - there is no popup to remove."); |
| 611 // } | 613 // } |
| 612 }; | 614 }; |
| 757 // console.log('js.setting...'); | 759 // console.log('js.setting...'); |
| 758 // console.log(js.setting); | 760 // console.log(js.setting); |
| 759 | 761 |
| 760 for (var i in scripts) { | 762 for (var i in scripts) { |
| 761 var src = scripts[i]; | 763 var src = scripts[i]; |
| 762 if (!$('script[src='+ src + ']').length && !Popups.addedJS[src]) { | 764 if (!$("script[src='"+ src + "']").length && !Popups.addedJS[src]) { |
| 763 // Get the script from the server and execute it. | 765 // Get the script from the server and execute it. |
| 764 $.ajax({ | 766 $.ajax({ |
| 765 type: 'GET', | 767 type: 'GET', |
| 766 url: src, | 768 url: src, |
| 767 dataType: 'script', | 769 dataType: 'script', |
| 801 | 803 |
| 802 /** | 804 /** |
| 803 * Do before the form in the popups is submitted. | 805 * Do before the form in the popups is submitted. |
| 804 */ | 806 */ |
| 805 Popups.beforeSubmit = function(formData, $form, options) { | 807 Popups.beforeSubmit = function(formData, $form, options) { |
| 808 if ($form.hasClass('views-processed') && $form.parents('div.view-filters').size()) { | |
| 809 return false; | |
| 810 } | |
| 806 Popups.removePopup(); // Remove just the dialog, but not the overlay. | 811 Popups.removePopup(); // Remove just the dialog, but not the overlay. |
| 807 Popups.addLoading(); | 812 Popups.addLoading(); |
| 808 }; | 813 }; |
| 809 | 814 |
| 810 | 815 |
| 920 Drupal.attachBehaviors(popup.$popupBody()); | 925 Drupal.attachBehaviors(popup.$popupBody()); |
| 921 // Adding collapse moves focus. | 926 // Adding collapse moves focus. |
| 922 popup.refocus(); | 927 popup.refocus(); |
| 923 | 928 |
| 924 // If the popups contains a form, capture submits. | 929 // If the popups contains a form, capture submits. |
| 925 var $form = $('form', popup.$popupBody()); | 930 var $form = $('form:not(.no-popup)', popup.$popupBody()); |
| 926 if ($form.length) { | 931 if ($form.length) { |
| 927 $form.ajaxForm({ | 932 $form.ajaxForm({ |
| 928 dataType: 'json', | 933 dataType: 'json', |
| 934 iframe: false, | |
| 929 beforeSubmit: Popups.beforeSubmit, | 935 beforeSubmit: Popups.beforeSubmit, |
| 930 beforeSend: Popups.beforeSend, | 936 beforeSend: Popups.beforeSend, |
| 931 success: function(json, status) { | 937 success: function(json, status) { |
| 932 Popups.formSuccess(popup, json); | 938 Popups.formSuccess(popup, json); |
| 933 }, | 939 }, |
| 934 error: function() { | 940 error: function() { |
| 935 Popups.message("Bad Response form submission"); | 941 Popups.message(Drupal.t("Bad Response form submission")); |
| 936 } | 942 } |
| 937 }); | 943 }); |
| 938 } | 944 } |
| 939 return popup; | 945 return popup; |
| 940 }; | 946 }; |
