This function, in theme_filter_tips_more_info, creates a link to /filter/tips within the same window. With some browsers, if you were typing a comment and clicked there in the middle of your comment, the browser tips window would open up in the same window, and then when you hit the back button your message is gone.

Instead this should bring up a pop up window or some sort of javascript hovering trickery.

CommentFileSizeAuthor
#299 drupal8.filter-target-blank.299.patch601 bytessun
#285 filter_popup.patch1.06 KBquicksketch
#281 87994-quick-fix-filter-tips.patch707 bytesaspilicious
#242 0001-87994.patch15.37 KBgordon
#238 drupal.effect.238.patch14.34 KBsun
#237 effects.patch10.79 KBgordon
#235 effect.patch14.1 KBJody Lynn
#216 drupal_add_effect.patch13.52 KBRobLoach
#215 filter_tips_trail.jpg86.36 KBTwoD
#209 filter.patch12.43 KBRobLoach
#207 filtertips_1.patch13.13 KBRobLoach
#205 filtertips.patch13.13 KBRobLoach
#204 filtertips.patch12.49 KBRobLoach
#204 Screenshot.png84.23 KBRobLoach
#201 filtertips.patch12.12 KBRobLoach
#195 drupal_add_ui.patch12.65 KBRobLoach
#194 drupal_add_ui.patch12.65 KBRobLoach
#192 jquery-ui-popup.png60.75 KBmrfelton
#178 drupal_add_action.patch12.08 KBRobLoach
#178 Filter Tips in Overlay Screenshot95.15 KBRobLoach
#175 drupal_add_action.patch12.04 KBRobLoach
#173 drupal_add_action.patch10.9 KBRobLoach
#173 Screenshot152.56 KBRobLoach
#162 87994.patch14.2 KBRobLoach
#153 modal.patch15.95 KBJody Lynn
#151 modal.patch12.29 KBJody Lynn
#148 87994.patch15.45 KBRobLoach
#146 87994.patch15.04 KBRobLoach
#144 87994.patch14.57 KBRobLoach
#143 87994.patch12.63 KBRobLoach
#142 87994.patch6.48 KBRobLoach
#137 87994.patch11.25 KBRobLoach
#136 87994.patch11.54 KBRobLoach
#133 87994.patch10.34 KBRobLoach
#129 modal.patch10.65 KBJody Lynn
#128 modal.patch10.06 KBJody Lynn
#126 87994.patch8.95 KBRobLoach
#119 87994.patch8.95 KBRobLoach
#118 87994.patch9.12 KBRobLoach
#117 87994.patch8.78 KBRobLoach
#114 87994.patch8.79 KBRobLoach
#111 OverlayAndFilterTips.png173 KBRobLoach
#109 87994.patch7.64 KBRobLoach
#107 modal.patch8.97 KBJody Lynn
#105 87994.patch7.77 KBJody Lynn
#97 87994.patch6.95 KBRobLoach
#97 Screenshot135.39 KBRobLoach
#95 87994.patch6.43 KBRobLoach
#94 drupal.filter-tips.94.patch8.97 KBsun
#92 drupal.filter-tips.92.patch6.74 KBsun
#92 filter-tips-garland.png45.13 KBsun
#92 filter-tips-seven.png29.98 KBsun
#77 Picture 18.png141.61 KBNick Lewis
#67 filter-tips-modal-67.patch6.82 KBdropcube
#59 filter-tips-modal+dyn-attach-59.patch12.79 KBdropcube
#54 modal-dynamic-attach.patch11.08 KBdropcube
#50 modal.diff7.78 KBmoshe weitzman
#49 modal_7.patch5.64 KBDavid_Rothstein
#48 modal.patch5.76 KBJody Lynn
#38 modal.patch5.7 KBJody Lynn
#37 modal.patch4.58 KBJody Lynn
#34 modal_3.patch5.7 KBJody Lynn
#32 modal_2.patch4.58 KBJody Lynn
#31 modal.patch5.02 KBJody Lynn
#25 modal.patch5.19 KBJody Lynn
#25 Picture 2.png98.15 KBJody Lynn
#22 modal.patch3.9 KBJody Lynn
#15 filter-tips.patch828 bytesJody Lynn
Support from Acquia helps fund testing for Drupal Acquia logo

Comments

piersonr’s picture

Version: 4.7.3 » x.y.z

modified issue version - this is also in the cvs version of the filter module.

chx’s picture

Category: bug » feature
Priority: Minor » Normal
lilou’s picture

Version: x.y.z » 7.x-dev
David_Rothstein’s picture

Issue tags: +Usability

This is really a combination of a bug report and feature request, I think.

There is more discussion of the data loss bug at #153313: ckeditor input is lost when using the browser's back button. So I'm tempted to leave this one open just as the feature request... a popup or modal dialog or something seems like it would be more user-friendly.

starbow’s picture

Dave Reid’s picture

Xano’s picture

The new help system might be used for this, since filter tips are help and the new system includes popup windows.

Damien Tournoud’s picture

Jody Lynn’s picture

Status: Active » Needs review
FileSize
828 bytes

For now, how about we just do the quick fix and open the link in a new window as this issue's title requests.

David_Rothstein’s picture

It seems this same approach was proposed a long time ago at #59430: "More information about formatting options" must open in new window and marked "won't fix". Worth at least looking at the arguments there...

Not that Drupal is completely strict about this though. I checked, and currently install.php is already using a link with target=_blank.

Bojhan’s picture

I am tempted to mark this RTBC. Can we get another code review? And I think most arguments are pretty straight forward, but we simply have to fix this.

wr5aw’s picture

I'm opposed to using target=_blank as a "quick fix." You'll certainly have some folks screaming about not validating strict. I would prefer a js/window.open fix. I think we need some alternatives.

Bojhan’s picture

Status: Needs review » Postponed

Spoke to webchick, basicly this solution is a no go! Sorry :(

webchick’s picture

Status: Postponed » Needs work

Sorry, but as much as I really want this stupid bug fixed, we simply can't fix this with a one-off target="_blank" hack. I believe there was a means of displaying inline help in popups as part of the #299050: Help System - Master Patch patch. Possibly pulling that out and using it here would work.

Jody Lynn’s picture

Title: Filter tips "More information about formatting options" should open in a new window » Filter tips "More information about formatting options" should open in a modal popup

ok, changed title

Jody Lynn’s picture

Status: Needs work » Needs review
FileSize
3.9 KB

I started a drupal_dialog function in common.inc to use jQuery UI's dialog js and css and have this working for filter tips.

Status: Needs review » Needs work

The last submitted patch failed testing.

rickvug’s picture

Status: Needs work » Needs review
Issue tags: +DrupalWTF, +modal dialog

This problem has come up many times in training sessions and also in formal usability testing, IIRC. I'd assume that everyone is +1 to fixing with a modal. With jQuery UI in core, I'd also assume that we'd use its modal dialog library. Jody Lynn, I think your patch correctly moves in this direction.

Where things get tricky is the fact that multiple areas of core could be improved through the use of modal dialogs. What standards are to be used? Reviewing the jQuery UI demo page, you can see that there are many options to be set. For this use case, it could be helpful to allow the dialog box to be moved and re-sized and moved so that one could refer to it during content creation. If modals are used for confirmation messages (ex: node deletion), we'd want to grey out the rest of the screen and disallow resizing.

It would be helpful to have a comment from the D7UX team, Gabor or Webchick regarding the direction for implementing modal dialogs. Should there be a master patch that implements changes in multiple areas or should all the patches be separate? If patches are to be separate, should a usage guideline be created? Should there be a separate "enabler" patch that focuses on providing the helper function (drupal_dialog etc.) before individual implementations are made?

Here are a few related links/issues for background:

- http://hojtsy.hu/blog/2009-jun-17/two-alternatives-d7ux-overlay-implemen...
- #374646: Popbox (Popups Lite): Adding Modal Dialogs to Confirmations
- #193311: Ajax Popups in Drupal 7: Adding Modal Dialogs to Help, Confirmations and Filter tips (Unified)
- #218820: Popups: Adding the core modal dialog API

Jody Lynn’s picture

FileSize
98.15 KB
5.19 KB

Yeah. it seems for a minimum drupal_dialog will need to accept settings for the dialog. I'll look more into the past issues as well.

Updated patch fixes the test in php module which failed due to the additional text displayed by the modal and cleans up filter_tips_long function which had no need for the arg() nonsense it was using.

Screenshot attached of the generic jquery ui dialog in effect from this patch.

EvanDonovan’s picture

Mmm... I like the screenshot of the modal dialog. Would this pattern be reusable elsewhere? From the patch code it looks like it would be, but I haven't actually tested the patch.

Modal dialogs might also be useful in some of the areas where people are considering #492834: Hover operations for flooded state screens, especially admin/content/node (see Dries' video in #30 of that issue).

Jody Lynn’s picture

Yeah, it adds a reusable drupal_dialog function you can call anywhere. It won't work in all cases because it uses static text for the modal, no AJAX.

Status: Needs review » Needs work

The last submitted patch failed testing.

scroogie’s picture

So this is now the official patch to add modal dialog support to drupal 7?

quicksketch’s picture

Subscribe to see where this goes. A few notes on the patch so far:

- We can now get rid of the extensive drupal_add_js/css calls now and just say drupal_add_library('system', 'dialog'); which should add all the JS/CSS files needed.
- Rather than having a set of parameters such as $title and $content, I'd like to see this all just become $options instead, which map directly to the the options provided by jQuery UI's Dialog options. That way we'd have a much more generic use of this function.
- I think keeping $link_class would be a good thing, but it shouldn't be called "link_class". Maybe just something like "class", since it doesn't have to be a link that gets clicked. It's tempting to make this a full selector such as ".link-class" as the value rather than "link-class". We're getting so deep into jQuery I'm not sure CSS/jQuery selectors should scare people any more.

Jody Lynn’s picture

FileSize
5.02 KB

I'm having trouble with drupal_add_library because it seems to be ignoring all but the first usage (I want to use dialogs, draggable and droppable)

I started moving things around so now you specify two jquery selectors (the activator and the modal content selector). I need to implement the options properly still.

Jody Lynn’s picture

Title: Filter tips "More information about formatting options" should open in a modal popup » filter tips modal popup / jqueryui modal popup helper function
Status: Needs work » Needs review
FileSize
4.58 KB

Ok this is working well now. You can define a new modal dialog by specifying the selector to be clicked and the selector that has the content, and an array of options.

Status: Needs review » Needs work

The last submitted patch failed testing.

Jody Lynn’s picture

Status: Needs work » Needs review
FileSize
5.7 KB

I forgot to 'fakeadd' the new file.

moshe weitzman’s picture

Code looks good to me.

This page should really use a render() array but thats probably too much scope creep for this issue. We can do that after freeze.

dropcube’s picture

The results are great, indeed, a very useful and valuable addition. However, the main concern I have now is about the hardcoded dialog dimensions.

How the dialogs dimensions/settings can be altered. Let's say for example, how a module/theme can alter settings of dialogs.

In this case, the dialog is being added inside a theme function, but in other cases, it might be added in menu callbacks, or other places, not necessarily inside theme functions.

Jody Lynn’s picture

FileSize
4.58 KB

Ok, I added a drupal_alter into the drupal_dialog function so you can alter dialogs.

Summary of this patch:
Adds a drupal_dialog function to allow creation of modal windows with settings.
Adds a corresponding misc/dialog.js that uses jQuery UI to implement the dialogs.
Changes the 'more filter tips' link to use drupal_dialog, which creates a draggable resizable modal window.

Context creep in this patch:
Fixes filter_tips_long function which had some unused cruft.
Fixes some unrelated simpletests which superficially break from this patch, due their testing for whether the word 'print' was on the page or not.

Jody Lynn’s picture

FileSize
5.7 KB

Forgot the fakeadd. again.

tizzo’s picture

Status: Needs review » Reviewed & tested by the community

This patch is clean and does what it says.

I think it's RTBC, anyone care to mark it as such?

+1!

kleinmp’s picture

Nice dialog boxes! This does what it says and code looks good.

tizzo’s picture

Soooo... I marked it as such. My bad, +1 anyone?

Dries’s picture

The big question is: how does this work with the overlay patch?

dropcube’s picture

+++ includes/common.inc	30 Aug 2009 23:48:07 -0000
@@ -5188,3 +5188,34 @@ function xmlrpc($url) {
+ * @param $trigger_selector
+ *   A jquery selector which should open a dialog when clicked.
+ *     Example: 'a#modal-link'
+ * @param $content_selector
+ *   A jquery selector which contains the content for display in the dialog.
+ * @param $options
+ *   An array of dialog options keyed by option name.
+ *     See http://docs.jquery.com/UI/Dialog#options for available options.

Can you combine all this parameters into the $options parameter, and pass 'trigger_selector' and 'content_selector' in the array.

+++ includes/common.inc	30 Aug 2009 23:48:07 -0000
@@ -5188,3 +5188,34 @@ function xmlrpc($url) {
+function drupal_dialog($trigger_selector = '', $content_selector = '', $options = array()) {

We already have drupal_add_js(), drupal_add_library(), drupal_add_css(), drupal_add_html_head(), drupal_add_link(), drupal_add_tabledrag(), ..., etc.

Can you follow this common pattern an rename this function to drupal_add_dialog(), for consistency.

+++ misc/dialog.js	30 Aug 2009 23:48:07 -0000
@@ -0,0 +1,30 @@
+  attach: function (context, settings) {
+  for (var key in Drupal.settings.dialogs) {

(minor) Wrong indentation here.

+++ misc/dialog.js	30 Aug 2009 23:48:07 -0000
@@ -0,0 +1,30 @@
+      }).addClass('dialog-processed');
+    }

(minor) should go in the next line.

dropcube’s picture

Status: Reviewed & tested by the community » Needs work
cwgordon7’s picture

Doesn't comply to coding standards, improper indentation in dialog.js.

Jody Lynn’s picture

I'll test this with the overlay patch and make sure everything's copacetic.

But I think in terms of having both the overlay patch and this general simple modal implementation, that that makes since, because the overlay functionality is so much more complex and specific.

Jody Lynn’s picture

I lean towards not putting every parameter into the $options array- those are specifically jQuery UI options for the modal dialog, and sticking everything all together in one array seems more confusing to me.

Everything else I'll change and study the js coding standards.

Jody Lynn’s picture

Status: Needs work » Needs review
FileSize
5.76 KB

I made dropcube's changes and hopefully that addressed cwgordon7's indentation concerns as well.

Still need to confirm this works well with overlay patch applied.

David_Rothstein’s picture

Status: Needs review » Reviewed & tested by the community
FileSize
5.64 KB

I reviewed this patch and made a couple of minor fixes to the code comments (attached). I think this is RTBC.

I also tried it with the overlay patch, and the answer to the question of how it works is "well enough". I was able to click on the filter tips link from within the overlay and get it to pop up on top of that (at least in Firefox) and look pretty much OK. If there are any details to worry about beyond that, I don't think it's the job of this patch to do that.

moshe weitzman’s picture

Status: Reviewed & tested by the community » Needs review
FileSize
7.78 KB

This is a nice usability improvement. Yet its integration into the render() model was a bit lacking. I've fixed it up. render elements may now add a dialog by setting #attached_dialogs. This goes on to call drupal_add_dialog() which was not changed at all.

I removed the more-info from a theme function since we don't do customizations like this via theme anymore. One can use the $conf['custom_strings'] feature of settings.php or hook_page_alter() to fiddle with the link.

If this patch fails testing, feel free to commit the prior one which is green right now.

Status: Needs review » Needs work

The last submitted patch failed testing.

moshe weitzman’s picture

Status: Needs work » Needs review

those 4 exceptions have nothing to do with this patch AFAICT.

dropcube’s picture

Status: Needs review » Needs work

I thinks it's a better and more extensible approach integrated with render(). A few comments, though.

-function drupal_process_attached(array $libraries = array(), array $js = array(), array $css = array(), $weight = JS_DEFAULT, $dependency_check = FALSE) {
+function drupal_process_attached(array $libraries = array(), array $js = array(), array $css = array(), array $dialogs, $weight = JS_DEFAULT, $dependency_check = FALSE) {

There should be a way to 'attach' other stuff further, now it has the parameters fixed, and is not simple to attach other stuff dynamically.

+  
+  // Dialogs to the page.
+  foreach ($dialogs as $dialog) {
+    call_user_func_array('drupal_add_dialog', $dialog);
+  }
+  

The same, IMO, we should not do special case for dialogs, rather integrate it with the code we currently have:

call_user_func('drupal_add_' . $type, $data, $options);
+    // Allow modules to alter dialogs.
+    drupal_alter('dialog', $dialogs);

If the dialogs are attached to the render() page structure, we do NOT need this pecial hook any more. The structure can be altered with hook-page_alter() or other _alter hooks.

+    '#attached_dialog' => array(array(".filter-tips-modal", "#filter-tips-modal-dialog", array('width' => 600, 'height' => 500))),

- Sounds better in plural: '#attached_dialogs'
- All the parameters should be combined in one associative array, for example:

'#attached_dialogs' => array(array(
  'trigger_selector' => ".filter-tips-modal",
  'content_selector' => "#filter-tips-modal-dialog",
  'width' => 600, 
  'height' => 500,
));

This way, it's easier to read, and easier to alter the complete '#attached_dialogs' structure.

Working on a patch to implement these changes.

dropcube’s picture

Status: Needs work » Needs review
FileSize
11.08 KB

The following patch implements the changes commented above.

Status: Needs review » Needs work

The last submitted patch failed testing.

moshe weitzman’s picture

Ugh. bot says - failed to apply

dropcube’s picture

I have created a separate issue to deal with the dynamic attaching to render() structures that that would be required here: #565496: Allow dynamic attaching of other types of stuff to render() structures .

dropcube’s picture

@moshe: ugh, I had an outdated copy of HEAD, let's re-roll.

dropcube’s picture

Status: Needs work » Needs review
FileSize
12.79 KB

Updated patch against HEAD implementing the changes commented in #53 plus other fixes. Note that this patch includes for now the patch from #565496: Allow dynamic attaching of other types of stuff to render() structures, to allow attaching of stuff dynamically instead of doing a special case for dialogs.

cwgordon7’s picture

Title: filter tips modal popup / jqueryui modal popup helper function » Filter tips modal popup / jQuery UI modal popup helper function
Category: feature » task

Not cool, someone ban that spammer.

cwgordon7’s picture

(Please?)

Status: Needs review » Needs work

The last submitted patch failed testing.

dropcube’s picture

Status: Needs work » Needs review
FileSize
6.82 KB

Updated patch, now using #attached.

moshe weitzman’s picture

Status: Needs review » Reviewed & tested by the community

Thats some nice rendering ... Please wait for green before commit.

Bojhan’s picture

Status: Reviewed & tested by the community » Needs work

I think this needs a usability review - to make sure it matches the overlay style somewhat. And not create a new style, that will confuse the user.

I am totally for committing this by the way, just want to make sure its done well - so we don't encounter issues down the road. Sadly I don't have a local machine here, but I will review later.

No worries about RTBC, this is a usability bug.

Bojhan’s picture

Tagging

catch’s picture

Category: task » bug
Status: Needs work » Needs review

Looks like wrong status.

Nick Lewis’s picture

FileSize
141.61 KB

Hmmmmm..... I don't want to block this because of overlays. http://drupal.org/node/517688 -- the issue looks troublesome, and it strikes me as funny to shelf a perfectly good usage of a dialog widget - as well as standard code to get them up in running (the first is it in drupal core?!) jQuery UI is such a slick library, and this particular usage is basically by the book: http://jqueryui.com/demos/dialog/#modal-confirmation (minus dropping an overlay).
The patch applied fine, as did playing with it. I've attached screenshots of how it looks. Will wait for 24 hours before i mess with webchick's mellow by marking RTBC

Jody Lynn’s picture

Status: Needs review » Reviewed & tested by the community

I think it's ready. If there are minor issues with style matching the overlays (it's using all default jQuery UI style now) that can be sorted out later.

Bojhan’s picture

I would like to remind everyone, that "now" is later.

David_Rothstein’s picture

I agree this is RTBC.

Note that in #49 above I tested a previous version of this patch with the overlay and it did not look horrible or create any big explosions or anything. I just tried it again with the latest versions now, and the same is true (although the overlay patch currently sets the z-index of the toolbar to a gigantic value, which causes the filter tips to appear underneath the toolbar, but that's a minor conflict that would be easy to resolve).

I don't see any reason to hold this patch up for another patch which does not seem like it's particularly close to being committed. Minor tweaks can be made if and when necessary.

sun’s picture

Issue tags: +API clean-up

I guess this can be considered RTBC, but it needs a re-roll to fix a few minor issues.

dropcube’s picture

@sun: can you specify what issues should be fixed so that we can fix them ?

sun’s picture

+++ modules/php/php.test	6 Sep 2009 20:23:24 -0000
@@ -56,7 +56,7 @@
     // Make sure that the PHP code shows up as text.
     $this->drupalGet('node/' . $node->nid);
-    $this->assertText('print', t('PHP code is displayed.'));
+    $this->assertText('print "SimpleTest PHP was executed!"', t('PHP code is displayed.'));
@@ -66,7 +66,7 @@
     // Make sure that the PHP code shows up as text.
-    $this->assertNoText('print', t('PHP code isn\'t displayed.'));
+    $this->assertNoText('print "SimpleTest PHP was executed!"', t('PHP code isn\'t displayed.'));

Introduced in #37.

Please remove these changes from this patch, unless they're strictly necessary.

+++ modules/filter/filter.module	6 Sep 2009 20:23:23 -0000
@@ -635,10 +632,18 @@
+    'trigger_selector' => '.filter-tips-modal', 
+++ misc/dialog.js	1 Jan 1970 00:00:00 -0000
@@ -0,0 +1,31 @@
+        $(dialog.content_selector).dialog({ 
+          autoOpen: false 

Trailing white-space here.

+++ modules/filter/filter.module	6 Sep 2009 20:23:23 -0000
@@ -635,10 +632,18 @@
+  $form['format_help'] = array_merge($form['format_help'], filter_tips_more_info());
@@ -736,12 +741,16 @@
+function filter_tips_more_info() {

Can we remove this function and just add those elements to the form?

+++ modules/filter/filter.module	6 Sep 2009 20:23:23 -0000
@@ -736,12 +741,16 @@
+    '#prefix' => '<div id="filter-tips-modal-dialog" class="ui-helper-hidden" title="' . t('Filter Tips') . '">',

"Filter tips" (lower-case t)

+++ includes/common.inc	6 Sep 2009 20:23:15 -0000
@@ -5478,3 +5478,40 @@
+ *   - 'trigger_selector'
+ *     A jQuery selector which should open a dialog when clicked.
+ *     Example: 'a#modal-link'.
+ *   - 'content_selector'
+ *     A jQuery selector which contains the content for display in the dialog.
+ *   - 'options'
+ *     An array of dialog options keyed by option name.
+ *     See @link http://docs.jquery.com/UI/Dialog#options for available
+ *     options.

The key description should follow after a colon + space (: ) right after the key name.

Indentation is correct here, though.

The proper syntax for @link is

@link [url] [title] @endlink

+++ misc/dialog.js	1 Jan 1970 00:00:00 -0000
@@ -0,0 +1,31 @@
+Drupal.behaviors.dialog = {
+  attach: function (context, settings) {

There should be a sanity check in here that $.dialog() is actually available.

+++ misc/dialog.js	1 Jan 1970 00:00:00 -0000
@@ -0,0 +1,31 @@
+      if (!$(key).hasClass('dialog-processed')) {
...
+        .addClass('dialog-processed');

Please use Drupal's new $.once() here.

+++ misc/dialog.js	1 Jan 1970 00:00:00 -0000
@@ -0,0 +1,31 @@
+        // Other default settings are defined by http://docs.jquery.com/UI/Dialog.

Such basics can be removed.

This review is powered by Dreditor.

Damien Tournoud’s picture

Status: Reviewed & tested by the community » Needs work
+  $build['long'] = array(
+    '#prefix' => '<div id="filter-tips-modal-dialog" class="ui-helper-hidden" title="' . t('Filter Tips') . '">',
+    '#markup' => filter_tips_long(),
+    '#suffix' => '</div>',
+  );

t('Filter Tips') needs to be check-plained.

Damien Tournoud’s picture

Category: bug » feature

I don't see how this is a bug, reclassifying.

SeanBannister’s picture

Sub

sun’s picture

Category: feature » task

@Damien: uhm, no. As of now, we "trust" user interface string translations. Only user-supplied data needs to be escaped. We have many examples in core, so I hope one arbitrary is sufficient to convince you: http://api.drupal.org/api/function/contact_form_user_profile_form_alter/7

Also, this is a usability problem, not really a feature. Since you lose all your form data when clicking on that filter tips link, it can certainly be considered as a bug. However, let's just treat it as a task. ;)

sun’s picture

Status: Needs work » Needs review
FileSize
29.98 KB
45.13 KB
6.74 KB

Incorporated issues from #87.

Taking account for #583400: jQuery UI libraries are loading too much CSS that needs to be reverted / Allow jQuery UI themes to be swappable.

Screenhots for Garland and Seven attached.

Status: Needs review » Needs work

The last submitted patch failed testing.

sun’s picture

Status: Needs work » Needs review
FileSize
8.97 KB

Forgot dialog.js and those php test changes actually seem to be required (not sure why).

RobLoach’s picture

Priority: Normal » Critical
FileSize
6.43 KB

This abstracts dialog.js into jqueryui.js and adds drupal_add_jqueryui() which allows the registration/binding of jQuery UI elements.

  // Present the more information about text formats link.
  $form['format_help']['more'] = array(
    '#markup' => l(t('More information about text formats'), 'filter/tips', array('attributes' => array('class' => array('filter-tips-modal')))),
  );
  $form['format_help']['long'] = array(
    '#prefix' => '<div id="filter-tips-modal-dialog" class="ui-helper-hidden" title="' . t('Filter tips') . '">',
    '#markup' => filter_tips_long(),
    '#suffix' => '</div>',
  );

  // Create a dialog box for the filter tips.
  $form['#attached']['drupal_add_jqueryui'][] = array('dialog', '#filter-tips-modal-dialog', array(
    'width' => 600,
    'height' => 500,
    'dialogClass' => 'filter-tips',
    'autoOpen' => FALSE,
  ));
  // When the user clicks on the more information link, present the dialog box.
  $form['#attached']['drupal_add_jqueryui'][] = array('dialog', '#filter-tips-modal-dialog', 'open', 'click', '.filter-tips-modal');

As you can see, we create the dialog box, in the first call, and then register the click event to show it. The good thing about this is that it will work on any bindable event, as well as any jQuery UI tool we have available, which gives us quite a bit of power.

Couple side notes:

Status: Needs review » Needs work

The last submitted patch failed testing.

RobLoach’s picture

FileSize
135.39 KB
6.95 KB

Cleaned up drupal_add_jqueryui() with some documentation. Also added a $base parameter, so that we're not restricted to "ui" libraries. We can now also use drupal_add_jqueryui() to add UI Effects as well. Yay screenshot!

SeanBannister’s picture

Great work on this. From a usability/accessibility point of view I really think a drop shadow would add great separation between the content in the dialog and the content behind it.

However I'm not sure what the state of Drop Shadows is in jQueryUI I heard at one point they were removed because they needed more work. I'll have a look at this if I get some time.

Bojhan’s picture

Ok, so first things - first. Lets remove the scrollbar - just expand the browsers scroll bar. Then onto the style, as far as I can see the < li >'s cause a lot of indentation - is there anyway we can fix this? (Perhaps some screenshots of other help text's.

Also, can someone run this in sync with overlay to see how it looks, what we change about it visuals.

RobLoach’s picture

Issue tags: +jQuery UI

One thing that the popup is missing is draggable and resizable. Right now once the dialog is presented, you can't move it out of the way and continue writing. We need draggable and resizable jQuery UI libraries so that the user can move it without loosing their place.

Bojhan at #99:

as far as I can see the < li >'s cause a lot of indentation - is there anyway we can fix this? (Perhaps some screenshots of other help text's.

Do you think modifying the actual filter tips content should be in a different issue? Here we're just sticking it in a popup dialog box. Sun brought up the idea of sticking it in jQuery UI tabs/accordion, which might help.

SeanBannister at #98:

From a usability/accessibility point of view I really think a drop shadow would add great separation between the content in the dialog and the content behind it.

Yeah, unfortunately jQuery UI Drop Shadow is still in planning phase of jQuery UI 1.8. We could look at bringing in jQuery Drop Shadow....

Bojhan at #99:

Lets remove the scrollbar - just expand the browsers scroll bar.

That is the browser's scroll bar ;-) .

Bojhan at #99:

Also, can someone run this in sync with overlay to see how it looks, what we change about it visuals.

Good idea!

zenrei’s picture

subscribing.

Jody Lynn’s picture

@sun in #94, That php filter test was testing for whether or not the word 'print' was appearing on the screen (not the most robust test). The filter tips contain the word 'print', so it broke the test.

Jody Lynn’s picture

Status: Needs work » Needs review
FileSize
7.77 KB

I updated the filter_tips_long code (looks like there was a recent change to theme_filter_tips that affected it), and added draggable and resizable as dependencies to the dialog js, which makes the dialog draggable and resizable. (Which is in agreement with http://docs.jquery.com/UI/Dialog#overview which lists them as dependencies)

I think the theming recommendations are out of this issue's scope. We haven't done any theming at all to the dialog, it's just jQueryUI out of the box. Theming dialogs or the filter tips content should be new issues.

Status: Needs review » Needs work

The last submitted patch failed testing.

Jody Lynn’s picture

Status: Needs work » Needs review
FileSize
8.97 KB

Forgot my own advice in #104

Status: Needs review » Needs work

The last submitted patch failed testing.

RobLoach’s picture

Status: Needs work » Needs review
FileSize
7.64 KB

Rerolled Jody's last patch to HEAD without the PHP test update. I really like it with the resizable and draggable.

Here's a Screenshot of it with #583400-19: jQuery UI libraries are loading too much CSS that needs to be reverted / Allow jQuery UI themes to be swappable :-) .

Status: Needs review » Needs work

The last submitted patch failed testing.

RobLoach’s picture

FileSize
173 KB

Bojhan at #99 asked to see how this works with the Overlay, so I took the steps I outlined at #583400-19: jQuery UI libraries are loading too much CSS that needs to be reverted / Allow jQuery UI themes to be swappable, and then applied the latest patch in #517688: Initial D7UX admin overlay, and the attached screenshot is the result. Seems to work quite well!

Through #583400: jQuery UI libraries are loading too much CSS that needs to be reverted / Allow jQuery UI themes to be swappable, we could give Seven's jQuery UI theme a look that more matches the administrative stuff. Theme roller and theme_hook_alter to the rescue! Yay! :-)

Anyone know why the PHP test failed?

David_Rothstein’s picture

Anyone know why the PHP test failed?

The code discussed in #104 and #107 needs to be added back to the patch to make the tests pass again.

Jody Lynn’s picture

Looking great with #583400. Seems like we just need to reroll with that php test adjustment and we're golden.

RobLoach’s picture

Status: Needs work » Needs review
FileSize
8.79 KB

Hmmm, bizarre.

rickvug’s picture

Jody in #113 says that everything checks out. #111 addresses the way forward and compatibility. All tests pass in #114. Is this RTBC?

sun’s picture

@RobLoach: Very nice job!

+++ includes/common.inc	14 Oct 2009 16:57:21 -0000
@@ -3673,6 +3673,55 @@
+ * @param $tool
+ *   The name of the tool to add (dialog, accordion, resizable, etc).
...
+ * @param $base
+ *   (optional) The base name of the tool that is being added. Specify "effect"
+ *   for any jQuery UI effect, and "ui" for widgets and interactions.
...
+function drupal_add_jqueryui($tool, $selector = NULL, $options = array(), $event = 'ready', $binded_element = NULL, $base = 'ui') {
...
+    drupal_add_library('system', "$base.$tool");

The order of arguments looks very unnatural to me. I'd expect $base, $tool, and both being required.

+++ includes/common.inc	14 Oct 2009 16:57:21 -0000
@@ -3673,6 +3673,55 @@
+ * @param $selector
+ *   (optional) The CSS selector of which to apply the tool.

s/of which//

+++ includes/common.inc	14 Oct 2009 16:57:21 -0000
@@ -3673,6 +3673,55 @@
+ * @param $event
+ *   (optional) On what binded event the tool should be applied to the element.
+ *   Defaults to document ready.

"document ready" ?

Perhaps, "document.ready()".

Or, "document's 'ready'".

+++ includes/common.inc	14 Oct 2009 16:57:21 -0000
@@ -3673,6 +3673,55 @@
+ * @param $binded_element
+ *   (optional) When binding on an event other then ready, will be the element
+ *   that the event is binded to.

s/then/than/

+++ misc/jqueryui.js	1 Jan 1970 00:00:00 -0000
@@ -0,0 +1,45 @@
+Drupal.behaviors.jqueryui = {
...
+    if (settings.jqueryui || false) {
...
+              // Apply the jQuery UI's effect.
+              $(selector, context).once('jqueryui-' + tool + '-ready')[tool](options.options);
...
+              // Apply the jQuery UI's effect on a binded event.
+              $(options.item, context).once('jqueryui-' + tool + '-' + event).bind(event, function(e) {

Not 100% sure, but I'd prefer if core would take away the "ui" behavior namespace (i.e. skipping the "jquery" prefix).

So also this file would be renamed to ui.js.

Because, we still don't know about the future of the contributed jquery_ui module...

This review is powered by Dreditor.

RobLoach’s picture

FileSize
8.78 KB

Thanks for the review. I've included the notes sun made in this patch.

  • Renamed to drupal_add_ui(), along with renamed jqueryui.js to ui.js and the namespace change
  • Touched up the documentation and removed the "optional" note for the $base argument. You're right in this not really being optional.
  • Fixed the other documentation notes you made

... Got an idea regarding $base, we could remove the base part from the related jQuery UI libraries in system_library so we're left with $libraries['dialog'] instead of $libraries['ui.dialog'], and $libraries['explode'] instead of $libraries['ui.explode']. Then we wouldn't need this $base argument at all. Thoughts?

RobLoach’s picture

FileSize
9.12 KB

After a quick discussion with tha_sun and DamZ, we ended up going with:

  drupal_add_ui($module, $library, $selector, $options, etc)....

  // Create a dialog box for the filter tips.
  $form['#attached']['drupal_add_ui'][] = array('system', 'ui.dialog', '#filter-tips-modal-dialog', array(
    'width' => 600,
    'height' => 500,
    'dialogClass' => 'filter-tips',
    'autoOpen' => FALSE,
  ));
  // When the user clicks on the more information link, present the dialog box.
  $form['#attached']['drupal_add_ui'][] = array('system', 'ui.dialog', '#filter-tips-modal-dialog', 'open', 'click', '.filter-tips-modal');

This matches the function definition of drupal_add_library for added bonus consistency.

RobLoach’s picture

FileSize
8.95 KB

Forgot to remove the $base PHP docs.

sun’s picture

Status: Needs review » Reviewed & tested by the community

I love it.

This may even be usable for Overlay.

RobLoach’s picture

Dries’s picture

I like this, but I think it is secondary to the main overlay patch at #517688: Initial D7UX admin overlay. I'd like to get the main Overlay in first, and then see how both play together. I think that is the best, and most natural order, that would give us the biggest bang.

Status: Reviewed & tested by the community » Needs work

The last submitted patch failed testing.

RobLoach’s picture

Status: Needs review » Needs work

The last submitted patch failed testing.

Jody Lynn’s picture

Status: Needs work » Needs review
FileSize
10.06 KB

The theme_filter_tips_more_info function was removed, but it was still being used in filter.admin.inc. I fixed that, but we probably want to just put a modal dialog in the filter admin as well.

Jody Lynn’s picture

FileSize
10.65 KB

I added the modal for the filter admin pages (e.g. /admin/config/content/formats/1)

RobLoach’s picture

Status: Needs review » Reviewed & tested by the community

Yup!

Just created a follow up issue: #609094: Popups for the "More Help" links.

Status: Reviewed & tested by the community » Needs work

The last submitted patch failed testing.

rickvug’s picture

Any update here? We're now a week past freeze #2 and overlay's status is unclear. I would hate to see a usability improvement like this one passed over while waiting for a mega-patch that may or may not land (...and I do hope it lands).

RobLoach’s picture

Status: Needs work » Needs review
FileSize
10.34 KB

Brought back to HEAD.

dmitrig01’s picture

Status: Needs review » Needs work
Index: modules/system/system.module
===================================================================
RCS file: /cvs/drupal/drupal/modules/system/system.module,v
retrieving revision 1.826
diff -u -r1.826 system.module
--- modules/system/system.module	25 Oct 2009 19:52:47 -0000	1.826
+++ modules/system/system.module	26 Oct 2009 04:04:57 -0000
@@ -1153,6 +1153,8 @@

Please roll with -p

+++ modules/system/system.module	26 Oct 2009 04:04:57 -0000
@@ -1153,6 +1153,8 @@
Index: modules/php/php.test
Index: modules/php/php.test
===================================================================
===================================================================
RCS file: /cvs/drupal/drupal/modules/php/php.test,v
RCS file: /cvs/drupal/drupal/modules/php/php.test,v
retrieving revision 1.18
retrieving revision 1.18
diff -u -r1.18 php.test
diff -u -r1.18 php.test
--- modules/php/php.test	11 Oct 2009 03:07:19 -0000	1.18
--- modules/php/php.test	11 Oct 2009 03:07:19 -0000	1.18
+++ modules/php/php.test	26 Oct 2009 04:04:57 -0000
+++ modules/php/php.test	26 Oct 2009 04:04:57 -0000
+++ modules/php/php.test	26 Oct 2009 04:04:57 -0000
@@ -60,7 +60,7 @@

do you really need these changes?

+++ includes/common.inc	26 Oct 2009 04:04:57 -0000
@@ -3882,6 +3882,58 @@
+ * @param $module
+ *   The name of the module that registered the desired library. For most jQuery
+ *   UI elements, this is usually "system".

What jQuery UI elements would not be defined by system? none! Please remove $module altogether

+++ includes/common.inc	26 Oct 2009 04:04:57 -0000
@@ -3882,6 +3882,58 @@
+ *   An array representing all elements added to the page so far.
+ */
+function drupal_add_ui($module, $library, $selector = NULL, $options = array(), $event = 'ready', $binded_element = NULL) {

use a big $options array for all but the first two items please. Also, it's bound, not binded

+++ modules/filter/filter.module	26 Oct 2009 04:04:57 -0000
@@ -674,10 +671,28 @@
+
+  // Create a dialog box for the filter tips.
+  $form['#attached']['drupal_add_ui'][] = array('system', 'ui.dialog', '#filter-tips-modal-dialog', array(
+    'width' => 600,

what about just a #attached[ui] ?

Jody Lynn’s picture

Dmitri: Comment #104 explains why we need that change to php.test

RobLoach’s picture

Status: Needs work » Needs review
FileSize
11.54 KB

Thanks for giving it a look, Dmitri! I like the options array idea, as well as [#attached][ui].....

  // Create a dialog box for the filter tips.
  $form['#attached']['ui'][] = array(
    'library' => 'ui.dialog',
    'selector' => '#filter-tips-modal-dialog',
    'options' => array(
      'width' => 600,
      'height' => 500,
      'dialogClass' => 'filter-tips',
      'autoOpen' => FALSE,
    ),
  );
  // When the user clicks on the more information link, present the dialog box.
  $form['#attached']['ui'][] = array(
    'library' => 'ui.dialog',
    'selector' => '#filter-tips-modal-dialog',
    'options' => 'open',
    'event' => 'click',
    'bound_element' => '.filter-tips-modal'
  );
RobLoach’s picture

FileSize
11.25 KB

Cleaned up the code a bit.

Bojhan’s picture

Status: Needs review » Reviewed & tested by the community

Obviously I agree with Dries that Overlay should go in first, but given the progress on that issue - I think its smart to commit this anyway. Since it is almost always already demonstrated with the Overlay, we know the visual issues are fixable and no bugs have been encounterd yet.

RobLoach’s picture

Status: Reviewed & tested by the community » Needs work
+++ includes/common.inc	27 Oct 2009 17:53:46 -0000
@@ -3882,6 +3889,66 @@
+  // Add the settings so that the behaviors are attached to the elements.
+  if (isset($options['selector'])) {
+    // Use the explicit index to avoid conflicts when the settings are merged.
+    $index = count($elements[$library]);
+    // Remove items that the JavaScript doesn't need and add the settings.
+    unset($options['module'], $options['library']);
+    $settings['ui'][$tool][$index] = $options;
+    drupal_add_js($settings, 'setting');
+  }

My mistake. This should add an item to $elements[$library][$tool], and then get the count of $elements[$library][$tool] instead so that $index keeps growing correctly. As it is now, $index will stay on how many tools you add, as oppose to how many jQuery UI elements you invoke. With this, when the settings are merged, you'd hit conflicts.

This review is powered by Dreditor.

RobLoach’s picture

Braindump.....

Conditional checks
In #613654: update.manager.js is missing, they want to display a dialog warning when a checkbox shouldn't be checked. It looks at this.checked, so it would be nice to somehow work that into this API.
"Library" is buggy
Although jQuery UI Highlight is effect.highlight, its function is $.show(effect, [options], [speed], [callback]);.
Abstract from jQuery UI
This could be applied to any jQuery function, and is not restricted to jQuery UI. We might want to make "library" a way to optional add jQuery UI libraries through drupal_add_library, and switch it to "function" or "callback", or something, as then we could do things like call slideDown on elements straight from PHP.
Argument list
The "options" are passed into the function call as a single argument. Instead, we could switch this to "arguments", and have it as an array of arguments. Then we could pass the speed option in jQuery UI Show. This would use the apply JavaScript function.
dww’s picture

I'm slightly worried about calling the new function drupal_add_ui(). I'm worried novice developers will think that means "output the form elements" or something. ;) I'd rather it was called drupal_add_jqueryui() or something, since it's entirely specific to jQuery UI, right?

Also, I wish I knew why we need to do this twice, more or less:

  // Create a dialog box for the filter tips.
  $form['#attached']['ui'][] = array(
    'library' => 'ui.dialog',
    'selector' => '#filter-tips-modal-dialog',
    'options' => array(
      'width' => 600,
      'height' => 500,
      'dialogClass' => 'filter-tips',
      'autoOpen' => FALSE,
    ),
  );
  // When the user clicks on the more information link, present the dialog box.
  $form['#attached']['ui'][] = array(
    'library' => 'ui.dialog',
    'selector' => '#filter-tips-modal-dialog',
    'options' => 'open',
    'event' => 'click',
    'bound_element' => '.filter-tips-modal'
  );

Isn't there some better way to handle this? Can't we merge the definition of the dialog and defining how it's attached to various triggers into the same step? Even if jQuery UI itself can't handle that, and jQuery UI really thinks of this as 2 actions, couldn't we handle that ourselves in drupal_add_jqueryui() to avoid the duplication at every call site? Roughly:

  // Create a dialog box for the filter tips.
  $form['#attached']['ui'][] = array(
    'library' => 'ui.dialog',
    'selector' => '#filter-tips-modal-dialog',
    'definition' => array(
      'width' => 600,
      'height' => 500,
      'dialogClass' => 'filter-tips',
      'autoOpen' => FALSE,
    ),
    'actions' => array(
      // When the user clicks on the more information link, present the dialog box.
      array(
        'options' => 'open',
        'event' => 'click',
        'bound_element' => '.filter-tips-modal',
      ),
    ),
  );

Also, is there a good way to associate actions with the "okay" and "cancel" buttons on the dialog? E.g. if I want to trigger something when the user clicks "cancel" in the dialog, how would I do that?

Otherwise, this is looking very cool. I applied the patch and played with the filter help tip popup -- super yummy!

Thanks,
-Derek

RobLoach’s picture

FileSize
6.48 KB

This patch adds a couple things:

  • Argument arrays through a "arguments" parameter allows us to call a function with more then just one parameter
  • Conditional checks via an "is" argument
  • Ability to call any jQuery function through the "action" parameter to let us call jQuery functions like "hide" or "show" on elements
  // Create a dialog box for the filter tips.
  $form['#attached']['ui'][] = array(
    'library' => 'ui.dialog',
    'selector' => '#filter-tips-modal-dialog',
    'arguments' => array(
      array(
        'width' => 600,
        'height' => 500,
        'dialogClass' => 'filter-tips',
        'autoOpen' => FALSE,
      ),
    ),
  );
  // When the user clicks on the more information link, present the dialog box.
  $form['#attached']['ui'][] = array(
    'library' => 'ui.dialog',
    'selector' => '#filter-tips-modal-dialog',
    'arguments' => array('open'),
    'event' => 'click',
    'bound_element' => '.filter-tips-modal',
  );

It would be great to have the ability to call multiple "actions" on a given element like Derek suggested above.

RobLoach’s picture

Status: Needs work » Needs review
FileSize
12.63 KB

Whoops, wrong patch.

RobLoach’s picture

FileSize
14.57 KB

Adds a "functions" associative array, which allows declaration of JavaScript functions for use in the "arguments" array. This is handy when you want to have a function callback passed into, say a jQuery UI Dialog button, like in #613654-11: update.manager.js is missing.

RobLoach’s picture

RobLoach’s picture

Issue tags: +DX (Developer Experience), +D7DX
FileSize
15.04 KB

Added in this patch

  • A optional "return" argument so that you can change the default return value. FALSE was the default because we wanted to override what clicking on a link did. Sometimes though, you'd want to return TRUE here instead, like when acting when dialog boxes close and stuff.
  • Cleaned up the documentation a bit
  • Switched the other filter dialog to use [#attached][ui].
  • Made the dialog boxes use "title" option instead of the coding the title in the markup

Things to consider

drupal_add_ui()
Since this can be applied to any jQuery function through the "action" argument (show, hide, css, etc), we could name this to drupal_add_jquery(), or something similar. Remember that it has to reflect the same namespace as [#attached][ui] and ui.js .
"actions"
dww brought up a great idea in #144 to allow acting on a single element with multiple actions. Should it be part of this patch?
Bikeshed
The sooner we get this in, the more fun stuff we can do with it. So let's get it in soon! Thanks.
sun’s picture

Awesome!

Not sure what to do about the multiple invocation thing. Basically, each invocation seems to add cruft to the settings array, so it seems to be worth to consider multiple things for the same module + library + selector for bandwidth reasons alone.

+++ includes/common.inc	30 Oct 2009 19:12:33 -0000
@@ -3882,6 +3889,88 @@
 /**
+ * Adds a jQuery UI element to the page, and invokes its behaviors.
+ *
...
+function drupal_add_ui(array $options = array()) {

We need at least one example usage in the PHPDoc here.

+++ modules/filter/filter.admin.inc	30 Oct 2009 19:12:33 -0000
@@ -160,7 +160,30 @@
+        'library' => 'ui.dialog',
+        'selector' => '#filter-tips-modal-dialog',
+        'arguments' => array('open'),
+        'event' => 'click',
+        'bound_element' => '.filter-tips-modal',

It seems like the more natural order is:

library
selector
event
bound_element (optional)
arguments

The @param description of drupal_add_ui() should use the very same order, having any other (totally optional) parameters appended last.

+++ modules/filter/filter.module	30 Oct 2009 19:12:34 -0000
@@ -674,10 +671,40 @@
+  // Present the more information about text formats link.
+  $form['format_help']['more'] = array(
+    '#markup' => l(t('More information about text formats'), 'filter/tips', array('attributes' => array('class' => array('filter-tips-modal')))),
+  );
+  $form['format_help']['long'] = array(
+    '#prefix' => '<div id="filter-tips-modal-dialog" class="ui-helper-hidden">',
+    '#markup' => filter_tips_long(),
+    '#suffix' => '</div>',
+  );
+
+  // Create a dialog box for the filter tips.
+  $form['#attached']['ui'][] = array(
+    'library' => 'ui.dialog',
+    'selector' => '#filter-tips-modal-dialog',
+    'arguments' => array(
+      array(
+        'width' => 600,
+        'height' => 500,
+        'autoOpen' => FALSE,
+        'title' => t('Filter tips'),
+      ),
+    ),
+  );
+  // When the user clicks on the more information link, present the dialog box.
+  $form['#attached']['ui'][] = array(
+    'library' => 'ui.dialog',
+    'selector' => '#filter-tips-modal-dialog',
+    'arguments' => array('open'),
+    'event' => 'click',
+    'bound_element' => '.filter-tips-modal',
+  );

Looks like we need a helper function now. Makes no sense to have the identical code.

+++ misc/ui.js	1 Jan 1970 00:00:00 -0000
@@ -0,0 +1,89 @@
+/**
+ * @file
+ * Provides the jQuery UI Drupal behaviors.
+ */
+
+  /**
+   * The base UI namespace.
+   */
+  Drupal.ui = {

Strange indentation.

+++ misc/ui.js	1 Jan 1970 00:00:00 -0000
@@ -0,0 +1,89 @@
+      jQuery.each(elements, function(index, value) {
...
+        jQuery.each(settings.ui, function(action, effects) {
+          jQuery.each(effects, function(index, effect) {
...
+              jQuery.each(effect.functions, function(name, code) {

We can use $ here.

+++ misc/ui.js	1 Jan 1970 00:00:00 -0000
@@ -0,0 +1,89 @@
+    attach: function(context, settings) {

(and elsewhere) Anonymous functions should have a space between 'function' and the opening parenthesis.

I'm on crack. Are you, too?

RobLoach’s picture

FileSize
15.45 KB

I hit some of the tha_sun's comments, as well as added dww's "actions" parameter. I find it helps a bit with the developer experience.....

  // Create a dialog box for the filter tips.
  $form['#attached']['ui'][] = array(
    'library' => 'ui.dialog',
    'selector' => '#filter-tips-modal-dialog',
    'arguments' => array(
      array(
        'width' => 600,
        'height' => 500,
        'autoOpen' => FALSE,
        'title' => t('Filter tips'),
      ),
    ),
    'actions' => array(
      // When the more information link is clicked, open the dialog box.
      array(
        'event' => 'click',
        'bound_element' => '.filter-tips-modal',
        'arguments' => array('open'),
      ),
    ),
  );

.... Is it just me or does $(this)[action].apply($(this), effect.arguments); not work on Safari or Internet Explorer? It works fine in Firefox.

jriedel’s picture

I just ran into this issue on 6.14, or I should say my customer just did and was very unhappy about it. I can't wait for 7.X to fix it, and I don't want to go around patching up the core.

I have a menu item I needed to put in a popup, so I used the same idea. I created a block that is in the footer of every page. The block has this in it

<script type="text/javascript">
$(document).ready(function() {
   $(".menu-234 > a").each(function() {
     $(this).attr("href", $(this).attr("href") + "?format=popup");
     $(this).attr("target", "_blank");
     });
});
$(document).ready(function() {
   $("a[href*='filter/tips']").each(function() {
     $(this).attr("href", $(this).attr("href") + "?format=popup");
     $(this).attr("target", "_blank");
     });
});
</script>

The first part takes care of the menu item, the second part fixes all the filter tips links. The format is just a slightly different format in teh theme that has no headers, menus, sidebars, just the content. Maybe someone better at Jquery can cleanup the code a bit.

So for someone finding this thread and needing a quick fix before 7.x comes out give this a try.

Jody Lynn’s picture

Title: Filter tips modal popup / jQuery UI modal popup helper function » Filter tips modal popup => full jQuery UI integration
FileSize
12.29 KB

I did some more of sun's comments and fixed it for Safari (Safari didn't like "effect.return" as I guess return is a reserved word, so I switched return to 'return_value'.)

I don't understand the conditionals in ui.js that are like if (settings.ui || false) { Why not just if (settings.ui) ?

Is this patch going to have a shot to make it in under the 'usability extension' category? It's some pretty important jquery UI integration stuff.

RobLoach’s picture

Status: Needs review » Needs work

Thanks for the Safari fix, I was having troubles with that one. Seems to be missing ui.js :-) .

Regarding if (settings.ui || false), I have a habit of strict typing code. We could just use settings.ui no problem, I was just concerned what would happen if settings.ui didn't exist.

Jody Lynn’s picture

Status: Needs work » Needs review
FileSize
15.95 KB

Here it is with ui.js.

I guess the conditionals should just be however the rest of core does it.

mcrittenden’s picture

Sub.

rickvug’s picture

Overlay (which seemed to be a blocker here) is now committed. Hoping that there is still time to get this in.

rickvug requested that failed test be re-tested.

RobLoach’s picture

Good point, rickvug! Having a look at $form['#ajax'], is there anyway it could fit in here? Maybe not since they both are trying to accomplish different things....

moshe weitzman’s picture

Lets get this in. It was ready before freeze and was told to sit and a corner and wait for overlay. It did so without complaint. Whats left?

Bojhan’s picture

Status: Needs review » Reviewed & tested by the community

Agreed, guess this is RTBC then.

Status: Reviewed & tested by the community » Needs review
Issue tags: -Usability, -DX (Developer Experience), -DrupalWTF, -modal dialog, -jQuery UI, -D7DX, -API clean-up

Dries requested that failed test be re-tested.

Status: Needs review » Needs work
Issue tags: +Usability, +DX (Developer Experience), +DrupalWTF, +modal dialog, +jQuery UI, +D7DX, +API clean-up

The last submitted patch failed testing.

RobLoach’s picture

Status: Needs work » Needs review
FileSize
14.2 KB

Rerolled. There's an unrelated issue in the Filter module that displays a warning and doesn't show the Allowed Tags. Should we fix that here?

Status: Needs review » Needs work

The last submitted patch failed testing.

chx’s picture

@Rob Loach, well, if you want the patch to be committed ;) of course could be fixed in a separate issue if it's a big / complicated one but a minor one should be just fine here.

casey’s picture

subscribing

bleen’s picture

Subscribe

Status: Needs work » Needs review
Issue tags: -Usability, -DX (Developer Experience), -DrupalWTF, -modal dialog, -jQuery UI, -D7DX, -API clean-up

Re-test of from comment #2356012 was requested by @user.

Status: Needs review » Needs work
Issue tags: +Usability, +DX (Developer Experience), +DrupalWTF, +modal dialog, +jQuery UI, +D7DX, +API clean-up

The last submitted patch, , failed testing.

casey’s picture

@Rob_Loach in #162, what issue are you exactly talking about? Could you give us a reroll?

Lets get this patch in. Especially the [#attachted][ui] stuff...

RobLoach’s picture

Title: Filter tips modal popup => full jQuery UI integration » Filter tips modal popup
Status: Needs work » Needs review
FileSize
152.56 KB
10.9 KB
  1. Switched it to drupal_add_action() as this is not restricted to "UI". You can call any jQuery method using this.
  2. Removed the function callbacks as that's not needed for this.
  3. Switched to a "link" form type, as well as a parenting "container" type instead of the theme function. Yay Drupal 7!

@casey: The warnings I was referring to is big red messages you see at the top of the screenshot. Unrelated to this patch.

Status: Needs review » Needs work

The last submitted patch, drupal_add_action.patch, failed testing.

RobLoach’s picture

Status: Needs work » Needs review
FileSize
12.04 KB

Forgot to update the PHP test.

Frando’s picture

Status: Needs review » Needs work

This doesn't work with the overlay. Clicking the filter tips link within the overlay gets me out of the overlay and on the regular filter tips page.

yched’s picture

@Rob Loach #162: "There's an unrelated issue in the Filter module that displays a warning and doesn't show the Allowed Tags"
I had those too. This comes from a previous patch in the filter config UI. You need to resave your filters config.

RobLoach’s picture

Status: Needs work » Needs review
FileSize
95.15 KB
12.08 KB

Frando at #176:

This doesn't work with the overlay. Clicking the filter tips link within the overlay gets me out of the overlay and on the regular filter tips page.

This is actually because the Overlay goes through each link and changes its behavior. Telling the Overlay not to change the link's behavior fixed it. It would be nice if the Overlay had a hook_overlay_no_process(), or something so that we could tell it how to behave or how not to behave on any given link. Like hook_admin_paths(), but to tell the Overlay to not process X links....

Telling the Overlay not to process it through the class seems the easiest solution around this for now.

yched at #177:

"There's an unrelated issue in the Filter module that displays a warning and doesn't show the Allowed Tags"
I had those too. This comes from a previous patch in the filter config UI. You need to resave your filters config.

Hmmm, do you know where that issue is? It would be nice if the upgrade path didn't require us to visit that configuration.

Well, here's an updated patch that works with the Overlay, along with a screenshot of it in the Overlay. #614494: Give Seven a nice looking default jQuery UI theme would make it prettier, but that's unrelated to this patch.

Jacine’s picture

subscribing

casey’s picture

Status: Needs review » Needs work

#178

This is actually because the Overlay goes through each link and changes its behavior. Telling the Overlay not to change the link's behavior fixed it. It would be nice if the Overlay had a hook_overlay_no_process(), or something so that we could tell it how to behave or how not to behave on any given link. Like hook_admin_paths(), but to tell the Overlay to not process X links....

#668104: Make overlay respect other click handlers should fix that.

['#attached']['action'] and drupal_add_action(): I am not sure about the name 'action'. Action is already being used elsewhere. We need a name that makes clear this is about adding scripts/interaction to the webpage/document/ui clientside. I think I would stick to 'ui'. Not by means of jQuery UI, but in general; a dialog or a collapsing event is part of the user interface, right? UI doesn't always mean GUI.

casey’s picture

Status: Needs work » Needs review

oops

Jody Lynn’s picture

Status: Needs review » Reviewed & tested by the community

I tested it and reviewed and it looks good to me with and without overlay. I'd be very glad to see this make it in.

I'm opening up a new issue for the php test adjustment that comes along with this issue, in the hopes that can go right in and avoid any further confusion here.

sun’s picture

+++ includes/common.inc	1 Jan 2010 16:44:59 -0000
@@ -4193,6 +4200,99 @@
+ *   - return_value: (optional) The value which should be returned after the action is
+ *     taken on the bound element. Defaults to FALSE.

Exceeds 80 chars.

+++ modules/filter/filter.module	1 Jan 2010 16:45:03 -0000
@@ -711,11 +708,44 @@
+      'attributes' => array('class' => array('filter-tips-help-link', 'overlay-displace-no-click', 'overlay-processed')),

Can we please remove Overlay from core? How much more ugly does it need to be?

+++ modules/filter/filter.module	1 Jan 2010 16:45:03 -0000
@@ -711,11 +708,44 @@
+  $form['format_help']['dialog'] = array(

Speaking of dialog... did you test whether this entire action handling actually works for Dialog module?

Powered by Dreditor.

casey’s picture

#183 Those classes ( 'overlay-displace-no-click', 'overlay-processed') aren't necessary any more when #668104: Make overlay respect other click handlers gets committed.

Jody Lynn’s picture

Status: Reviewed & tested by the community » Needs work

It sounds like webchick wants to get #668104: Make overlay respect other click handlers in before this one.

Also she committed #673252: Adjust a test in php.test for issue #87994 so we need to pull the change to php.test out of this patch.

RobLoach’s picture

The Overlay has dramatically slowed the progress on this. The issue was RTBC during the summer and was postponed due to it. Is there anywhere else we could apply this instead so we can at least get some seeable core jQuery UI elements into one of the required Drupal modules?

jQuery UI Tabs on the Filter Tips page?

markus_petrux’s picture

Off topic under the context of D7, I know. But maybe someone landing here could be interested in this kind of things for D6. Here's Filter Tips (and other usability enhancements for D6) with the help of the Modal Frame API:

http://drupal.org/project/modalframe_contrib

casey’s picture

Status: Needs work » Needs review

Re-test of drupal_add_action.patch from comment #178 was requested by aspilicious.

aspilicious’s picture

I retested this because i think its gonna fail
And it needs a lil tweak as the overlay click handler is fixed now

Status: Needs review » Needs work

The last submitted patch, drupal_add_action.patch, failed testing.

mrfelton’s picture

FileSize
60.75 KB

I think the initial width of the dialog is too small since most of the filter tips contain tables with fairly wide content. See screenshot.

aspilicious’s picture

Pushing this again, cause i think this can be fixed before alpha and need to be fixed.. (before or fast after alpha)

RobLoach’s picture

Status: Needs work » Needs review
FileSize
12.65 KB

Thank you to jacine for the .js-show class that solved an issue that was popping with when the filter tips dialog was in the overlay.

@mrfelton:

I think the initial width of the dialog is too small since most of the filter tips contain tables with fairly wide content.

Increased it to 600, which helped it a bit. We'll be re-theming the filters page after this one, so hopefully that will make it a bit thinner.

@markus_petrux:

Off topic under the context of D7, I know. But maybe someone landing here could be interested in this kind of things for D6. Here's Filter Tips (and other usability enhancements for D6) with the help of the Modal Frame API: http://drupal.org/project/modalframe_contrib

The Modal Frame API is a great module. This is doing a bit more then just providing one modal box though. It gives us an API that allows calling any jQuery method on elements from PHP through #attached ui and drupal_add_ui(). This small filter tips dialog is just one application of it. We could use #attached ui to apply tabs to filter tips page, for example, without having to put together an additional JavaScript file.

RobLoach’s picture

FileSize
12.65 KB

The .js-show class needed display: static.

scroogie’s picture

subscribing.

moshe weitzman’s picture

reviews anyone? this is marked critical.

casey’s picture

+++ modules/filter/filter.module	13 Jan 2010 08:27:19 -0000
@@ -711,11 +708,44 @@
+    'selector' => '.filter-tips-long-dialog',

This needs an ID. Maybe we should make 'selector' optional and when not provided ensure that element has an ID and use that ID as selector.

+++ modules/filter/filter.module	13 Jan 2010 08:27:19 -0000
@@ -711,11 +708,44 @@
+        'bound_element' => '.filter-tips-help-link',

Same here. Can't use ID of element however. "$element_id . ' .filter-tips-help-link'" should do however.

+++ modules/system/system.module	13 Jan 2010 08:27:30 -0000
@@ -1194,6 +1194,8 @@
Index: modules/php/php.test

+++ modules/php/php.test	13 Jan 2010 08:27:20 -0000
@@ -82,7 +82,7 @@

@@ -82,7 +82,7 @@
     $this->assertRaw(t('Basic page %title has been updated.', array('%title' => $node->title)), t('PHP code filter turned on.'));
 
     // Make sure that the PHP code shows up as text.
-    $this->assertNoText('print "SimpleTest PHP was executed!"', t("PHP code isn't displayed."));
+    $this->assertNoText('print "SimpleTest PHP was executed!"', t('PHP code isn\'t displayed.'));
     $this->assertText('SimpleTest PHP was executed!', t('PHP code has been evaluated.'));
   }
 }
@@ -110,7 +110,7 @@

@@ -110,7 +110,7 @@
 
     // Make sure that the PHP code shows up as text.
     $this->drupalGet('node/' . $node->nid);
-    $this->assertText('print', t('PHP code was not evaluated.'));
+    $this->assertText('print "SimpleTest PHP was executed!"', t('PHP code is displayed.'));
 
     // Make sure that user doesn't have access to filter.
     $this->drupalGet('node/' . $node->nid . '/edit');

Not part of this issue?

Powered by Dreditor.

Everett Zufelt’s picture

Has this modal dialog had an accessibility review?

RobLoach’s picture

FileSize
12.12 KB

Thanks for giving it a look, Casey. I addressed your concerns here. Also noticed that we could use a #theme property call for one of the elements.

Regarding the test, Jody outlined why we need that change at #104:

That php filter test was testing for whether or not the word 'print' was appearing on the screen (not the most robust test). The filter tips contain the word 'print', so it broke the test.

Everett Zufelt’s picture

I would be happy to give a brief accessibility review of this patch if someone can point me to a place where I can test it out. I can install head / the patch myself, but would strongly prefer not to.

Clearly everyone would prefer not to install and patch head themself, but with the limited time I have to contribute, and with the limited number of individuals involved in the community with accessibility skills I find this to be the best use of available resources for ensuring that d7 is as accessible as possible.

mfer’s picture

Status: Needs review » Needs work

This would be pretty cool if it actually worked. On a fresh checkout of head + #201 I didn't get any usable tips.

See...
http://img.skitch.com/20100202-funp9wjc9a7nf7knw7s8rx3gu.jpg
http://img.skitch.com/20100202-k53ckwrgiyijsdfx1m8krr4k9i.jpg

The other burning question I have is, since we are replicating jQuery UI type functionality in PHP... what happens when a module updates jQuery / UI to newer versions that have API changes? How does altering drupal work there?

RobLoach’s picture

Status: Needs work » Needs review
FileSize
84.23 KB
12.49 KB

Hmmm, Matt, are you using an old patch? The reason this happens is because the content is set to display:none. But then when the dialog hits it, it should be show()-ing it. I don't get those results on Chrome, Firefox or IE.

  • Here the patch with -p.
  • A screenshot
  • Works with or without the Overlay
  • Doesn't make you completely loose your node edit when you click the link
RobLoach’s picture

FileSize
13.13 KB

It seemed that for some reason, WebKit was thinking that .ui-helper-hidden was taking priority, even though it shouldn't. In this patch, we use a .js-show class (now alongside .js-hide) that will show the element only when JavaScript is enabled.

mfer’s picture

Status: Needs review » Needs work

While I am not entirely sure about the ickiness of a pop-up inside an overlay it does work now.

http://img.skitch.com/20100202-bthp657t4pg2r8rquqdtc26wnb.jpg

There is an issue with having a horizontal scrollbar. The vertical one I understand but we shouldn't have the horizontal one.

Here is a more detailed review....

+++ includes/common.inc	2 Feb 2010 15:47:37 -0000
@@ -4033,6 +4034,12 @@ function drupal_process_attached($elemen
+  // Add any jQuery actions.

What is a jQuery action? Reading through I understand what it does. But, where does this name come from? Is it another drupalism?

+++ includes/common.inc	2 Feb 2010 15:47:37 -0000
@@ -4189,6 +4196,100 @@ function drupal_get_library($module, $na
+    // Make sure to only add the library once.

drupal_add_library makes sure a library has not already been added. Why are we adding a check here as well?

+++ includes/common.inc	2 Feb 2010 15:47:37 -0000
@@ -4189,6 +4196,100 @@ function drupal_get_library($module, $na
+    // Remove items that the JavaScript doesn't need, and add it to the settings.

doesn't should be does not.

+++ modules/php/php.test	2 Feb 2010 15:47:38 -0000
@@ -82,7 +82,7 @@ class PHPFilterTestCase extends PHPTestC
+    $this->assertNoText('print "SimpleTest PHP was executed!"', t('PHP code isn\'t displayed.'));

isn't should be is not. Not sure how that conjunction got in there in the first place.

+++ misc/ui.js	1 Jan 1970 00:00:00 -0000
@@ -0,0 +1,52 @@
+          // element isn't provided, we will use the original selected item.

isn't should be is not.

Powered by Dreditor.

RobLoach’s picture

Status: Needs work » Needs review
FileSize
13.13 KB

Changed the width of the dialog so that the horizontal bar doesn't show up.

mgifford’s picture

subscribe.

RobLoach’s picture

Status: Needs review » Needs work
FileSize
12.43 KB

It would be great to do some more work on the code comments. Mfer is right in "action" being the wrong word.

casey’s picture

Decorator? Or just function?

Everett Zufelt’s picture

tagging

mcrittenden’s picture

Issue tags: +Needs usability review

Fixing tag spelling.

Everett Zufelt’s picture

I took a quick look at the filter tips dialog with four different screen-readers: JAWS 10 and Firefox 3.6, JAWS 6 and IE6, NVDA 0.6p2 and Firefox 3.6, and VoiceOver (Leopard) and Safari 4.

The dialog is using ARIA (Accessible Rich Internet Applications) markup which does improve accessibility for those user agents and assistive technologies that properly implement the draft W3C recommendation. Note that this is a draft recommendation and although pages will still validate (as the ARIA markup is injected with JS) it does theoretically break the validity of the DOM.

JAWS10: When activating the "More Information" link the screen-reader moves to the top of the dialog and begins reading. The user must then move back to the top of the dialog (if they realize that they are in a dialog) to close the dialog. This leaves the user at the bottom of the Add Content page. I can imagine users hitting the back button here because they do not realize that the content is in a modal JS dialog.

JAWS 6: Nothing appears to happen. If the user moves down to the Powered by Drupal footer of the page they can find the content. Nothing directs the user to look here and they may anticipate that the link has not functioned correctly. I believe that this behaviour will be present in JAWS versions up to JAWS 8 or possibly JAWS 9.

NVDA: The user is taken to the first link in the dialog. Same issues as in 1. above with JAWS 10.

VoiceOver: Same as NVDA.

** Note: this was a very fast preliminary assessment of the patch from the perspective of only one user, only testing with screen-reader technology, with no structured QA methodology, and does not constitute a thorough accessibility review.

I would suggest that this functionality would be at best confusing to most screen-reader users and would, depending on where the functionality is implemented, substantively break some functionality on the site.

mfer’s picture

@Everett Zufelt thanks for the feedback. This is great feedback that we need more of.

TwoD’s picture

FileSize
86.36 KB

How about calling actions 'interactions', 'widgets' or 'effects' instead, as that's what's seen in the jQuery UI demos? Or maybe just "[jQuery] methods" as all this is done to 'call', or at least queue a call to, some method on a jQuery object?

I just tested the patch in #209 and I like it!

My english is not perfect, but:

+++ includes/common.inc	2 Feb 2010 18:22:47 -0000
@@ -4189,6 +4196,91 @@
+ *   - event: (optional) On what binded event the tool should be applied to the

and

+++ includes/common.inc	2 Feb 2010 18:22:47 -0000
@@ -4189,6 +4196,91 @@
+ *     be the element that the event is binded to. Defaults to what was passed

and

+++ misc/ui.js	1 Jan 1970 00:00:00 -0000
@@ -0,0 +1,52 @@
+          // Apply the jQuery UI's effect on the binded event. If a bound

s/binded/bound/ ?

+++ includes/common.inc	2 Feb 2010 18:22:47 -0000
@@ -4189,6 +4196,91 @@
+ * any associated JavaScript. Selected handlers can be bound by events (like
+ * click) or be executed on once the element is ready.

"... Selected handlers can be bound to events (like click) or be executed once the element is ready." ?

A few side notes:
When testing this I had a pretty high CPU load (mostly due to other things) and I got a pretty annoying 'trail/tear' effect when moving the dialog. I happened to catch one of the more extreme ones in a screenshot. The trail/tear is not what I'm most concerned about tho (don't think it can be avoided), if you look at the top of the same screenshot, you'll notice I've got CKEditor loaded as well, and as soon as the dialog is over it's iframe and lags behind even a pixel, it stops dead until the cursor is outside the frame again. This also applies to resizing. The problem also exists in the jQuery UI demos if you inject an iframe there, so I'm not asking for a fix here. I'll just inform those who care that temporarily putting a div over any iframe will keep the mouse events inside the document and allow for normal dialog functionality.

The resize handle itself obscures and blocks the scroll-down button on the scrollbar, which also happens in the official demos. I guess that's a task for those jQuery UI theming issues mentioned above.

I know nothing about screen readers, so I'm afraid I can't help test that. :/ But the rest looks great to me!

Powered by Dreditor.

RobLoach’s picture

Status: Needs work » Needs review
FileSize
13.52 KB

Switched to TwoD's suggestion of "effect". This gives us drupal_add_effect(), which does reflect what the function does. Also touched up the documentation a bunch.

Status: Needs review » Needs work

The last submitted patch, drupal_add_effect.patch, failed testing.

Everett Zufelt’s picture

Related issue about accessibility of jQuery UI modal dialog used in overlay #716612: Overlay is not accessible to screen reader users. At this time modal dialogs are impossible to implement for at least the following screen-readers (JAWS, VoiceOver, NVDA). Dialogs can be implemented, modality is not possible to control.

RobLoach’s picture

Version: 7.x-dev » 8.x-dev

I give up.

catch’s picture

It's a shame that the overlay blocked this /actual/ usability improvement getting fixed while making the original bug worse with #655388: Many ways to lose data on form input in the overlay.

David_Rothstein’s picture

Version: 8.x-dev » 7.x-dev

Rob Loach: No way, you're not allowed to :)

This patch was essentially RTBC six months ago and held up for the overlay, which at the time was still three months from being committed. That's just plain wrong.

Surely, somewhere among the 15 patches above that were marked RTBC above, there is something committable here?

@catch: This is a feature/task, not a bug. The bug you're thinking of is #153313: ckeditor input is lost when using the browser's back button, I think.

catch’s picture

Category: task » bug

@David, no, this is very different from clicking random other links on the screen, or even closing the overlay, because the filter tips are embedded help text in the form itself linked directly to the process of content creation, so you fully expect not to be messed with when clicking on them. At Baltimore usability testing, someone clicked one of the links, lost all their form data, then said "I'll never click a help link again". IMO the expectations are very different from clicking on a menu item, home icon or wherever else which might take you away from the node from. If you can't complete your form without clicking on a help link, then a warning that you might lose context by visiting the help page does you absolutely no good whatsoever.

In other words this is a special kind of WTF, which even if we don't fix the overall form data loss elsewhere ought to be fixed here, and an (albeit huge) hovertip or modal popup for help text makes sense here, whereas a warning dialog or disabling clicking links, or any of the other suggestions in other issues, would make no sense at all.

EvanDonovan’s picture

I haven't done any reviewing on this issue, but I have followed it very closely because this is one of the biggest "small" usability improvements that I think could be made in Drupal 7.x. I am sorry that the scope of it crept to include an entire jQuery UI API - I was just hoping for a popup window... I think David_Rothstein is right at #221 - I am very busy right now, but I might be able to give a layman's usability review sometime this week, if I know which patch to apply to the latest D7 alpha.

casey’s picture

So... what needs to be done here? To me it looks like we're stuffing all kind of other issues into this one, making this one unfixable.

At least overlay doesn't block anything of this patch any more (#668104: Make overlay respect other click handlers)

Everett Zufelt’s picture

Regarding modal dialogs and accessibility for screen-reader users. I have written a blog article Can a modal dialog be made to work properly for screen-reader users on the web?. The short answer is kind of, but not really. I would have posted the entire article here, but it is a lttle to long for that. It explains the objective problem, as well as the subjective experience.

EvanDonovan’s picture

Would it be sufficient simply to make the filter tips show up in a new window or tab by setting the link to have target="_blank"?

I think that would address the problem of "I just lost my work by clicking a help link."

bleen’s picture

sadly (and inexplicably) target="_blank" is not XHTML compliant

EvanDonovan’s picture

I had no idea. Huge bummer :(

Another reason, imo, that XHTML should not be the goal in D8. HTML5 FTW!

EvanDonovan’s picture

Guess I'll have to create the "Filter tips in target blank" contrib module then...

David_Rothstein’s picture

Well, we already use target="_blank" several places in core, so I doubt adding it one more place would be a disaster...

sun’s picture

Guys, can we stop derailing this issue, please? This patch was RTBC a couple of times over the past months already, but always deferred due to unrelated bugs elsewhere.

What we need is a final re-roll and final review to get this sucker done.

Jody Lynn’s picture

I am rerolling.

David_Rothstein’s picture

Well, has anyone addressed Everett's comments above? I assume that's the main remaining blocker, and it seems to be a big one.

RobLoach’s picture

What we need is a final re-roll and final review to get this sucker done.

It would be very nice to have this in, but I'm not really confident it's where it should be. There are some things it does right, and some things it does wrong. Although it's really powerful and gives us a lot of JavaScript power from the PHP side, I think we need to just think about what it really should be. Maybe strip it down a bit? Not sure. A reroll would help us understand what's missing.

Guess I'll have to create the "Filter tips in target blank" contrib module then...

Haha :-).... Yeah, the good thing about all this stuff is that it can be "fixed" in contrib.

Regarding modal dialogs and accessibility for screen-reader users. I have written a blog article Can a modal dialog be made to work properly for screen-reader users on the web?. The short answer is kind of, but not really. I would have posted the entire article here, but it is a lttle to long for that. It explains the objective problem, as well as the subjective experience.

I haven't seen a patch update or any code to help fix this for screen readers. I'd love to get the accessibility in, but just haven't seen a viable solution yet, and this is part of the reason why I gave up on it a while ago.

Jody Lynn’s picture

Status: Needs work » Needs review
FileSize
14.1 KB

Well, here's a re-roll to look at.

This post may have some help about jquery ui dialog accessibility: http://www.geedew.com/2010/02/25/jquery-ui-dialog-accessibility/

Status: Needs review » Needs work

The last submitted patch, effect.patch, failed testing.

gordon’s picture

FileSize
10.79 KB

rolled.

sun’s picture

Status: Needs work » Needs review
FileSize
14.34 KB

Re-rolled against HEAD and cleaned up.

Everett Zufelt’s picture

@Jody Lynn

This post may have some help about jquery ui dialog accessibility:
http://www.geedew.com/2010/02/25/jquery-ui-dialog-accessibility/

Took a look at the post, I didn't know about this accessibility problem. Unfortunately it doesn't address the problems that modal dialogs can cause for screen-reader users.

Status: Needs review » Needs work

The last submitted patch, drupal.effect.238.patch, failed testing.

gordon’s picture

Investigating the current problem is that the #filter-guidelines-n where n is the filter id, which breaks unique id's when there is multiple textareas on the page.

gordon’s picture

FileSize
15.37 KB

I have fixed up all the ids so that they will be unique.

gordon’s picture

Status: Needs work » Needs review
DevElCuy’s picture

Perhaps focusing on #716612: Overlay is not accessible to screen reader users would be more effective, that one is a big critical issue!

Dries’s picture

Priority: Critical » Normal

This is not a regression from Drupal 6 -- this should not hold up a release. Changing priority to 'normal'.

AdrianB’s picture

Subscribing.

RobLoach’s picture

Status: Needs review » Needs work

Hmmm, although drupal_add_action is pretty cool, I think #647228: Links are needlessly unable to fully participate in D7 AJAX framework features might be a better way to do it.

RobLoach’s picture

Version: 7.x-dev » 8.x-dev

Drupal 7 is feature frozen and I believe #647228: Links are needlessly unable to fully participate in D7 AJAX framework features is a better route to get this kind of thing into contrib.

ksenzee’s picture

There's a contrib stopgap solution at http://drupal.org/project/filter_tips_dialog that uses Dialog API. It would be nice to focus some accessibility efforts on Dialog API in the Drupal 7 cycle so we can make it accessible enough for Drupal 8 core.

EvanDonovan’s picture

ksenzee: So the plan would be to get something like http://drupal.org/project/dialog, or a stripped-down version of it, into D8, so that this super-long-standing issue could be resolved by depending on it?

ksenzee’s picture

I think so. Basically we need a way of saying "this link should pop up in a simple jQuery UI dialog." People thought Overlay was going to serve that function, but it really doesn't. Dialog API does. And honestly, if we never use dialogs in core for anything more than this one issue, it's still a good enough reason to have them.

David_Rothstein’s picture

The current patch in this issue is more generic than Dialog API (it allows you to do any jQuery effect, not just dialogs, as I recall)... Probably worth continuing with that, unless there is a specific reason not to?

Regarding accessibility, my understanding from above is that it's an issue with jQuery UI and current screen reader technology itself... is that still correct? If so, I am not sure how we fix it in Drupal. It sounded like one option was to give up on making the dialog modal.

RobLoach’s picture

Two discussions going on here:

  1. Screen reader issue should probably be pushed over to the jQuery UI team, as its out of scope for Filter Tips Dialog. Another solution for screen readers is to disable JavaScript as that would just disable jQuery UI entirely. We don't want bike shedding here.
  2. The patch at #242 and the focus of this issue last year was to employ a generic API to make jQuery calls without needing additional JavaScript files. It's handy, but seems like something that might be better solved in contrib with the jQuery module. That was also before Drupal core's AJAX Framework was as solid as it is now. Taking that into account, we should use the tools available to us with Drupal core via the Link element and #ajax (AKA a stripped down version of the Dialog module).
David_Rothstein’s picture

Screen reader issue should probably be pushed over to the jQuery UI team, as its out of scope for Filter Tips Dialog. Another solution for screen readers is to disable JavaScript as that would just disable jQuery UI entirely. We don't want bike shedding here.

It's out of scope technically, but it's absolutely a blocker for this issue. Turning off JavaScript is not a reasonable solution.

Also, some of the things that were done to work around the accessibility issue for the overlay are unfortunately probably less of an option here (since the filter tips are not typically an admin-only feature like the overlay is).

RobLoach’s picture

It's out of scope technically, but it's absolutely a blocker for this issue. Turning off JavaScript is not a reasonable solution.

Truth... Everett talked with the team at Screen-readers and UI modal dialog, but I'm not sure how that translates into how it's used on the Drupal side. Maybe with JavaScript on load, we inject the user-agent into a body class and don't apply the model dialog if it's a screen reader application class? I'm not sure how to deal with this... Some direction would be great.

ksenzee’s picture

Maybe with JavaScript on load, we inject the user-agent into a body class and don't apply the model dialog if it's a screen reader application class?

Unfortunately you can't detect screenreaders - the user agent is the same with or without a screenreader turned on. If you could, it would have saved literally weeks of developer time on overlay.

Maybe we have to leave the popup dialog in contrib until jQuery UI fixes its accessibility problems, and for core move the filter tips into an expandable div or something.

RobLoach’s picture

I'd love to fix this in jQuery UI itself, but I just don't understand what the underlaying issue is, or where to begin to fix it. If someone provides a technical explanation of what is required in order to get around it, then I'd be more then happy to spend a weekend fixing this in jQuery UI itself.

One of my friends is legally blind, and has the colours on his monitor turned on high contract with an extremely low resolution so he pretty much just sees black and white colour differences. I showed him the jQuery UI Dialog default form, and he said he didn't have any troubles with it. Seriously, if someone please points me in the right direction, and a way to test things, that would be great. jQuery UI isn't going to fix the accessibility problems unless we go in and fix it for them.

Reading Everett's comment at #890288: Improve Overlay accessibility by using modal dialogs, if we set role=dialog, would that help? Assuming that's what was done for the Overlay? I'm seriously at a loss. Everett, could you provide some documentation or anything? This is why I gave up on this issue last year.

EvanDonovan’s picture

...for core move the filter tips into an expandable div or something.

Seems reasonable to me, unless you have a ton of filters enabled (which is probably a bad practice anyway).

I think the direction this issue went in before was probably scope creep, and should probably take place in a separate issue.

mgifford’s picture

There are some nice, accessibile solutions posted here that are worth looking at http://hanshillen.github.com/aegisdemo/

All with Accessible jQuery-ui Components.

Everett Zufelt’s picture

It is still incredibly difficult to create a modal dialog that doesn't cause problems for screen-readers.

In short the following is required, but still causes problems for some modern screen-readers, and for the many users that are using older technology.

1. When the link to activate the dialog is activated create the dialog and move focus to the first focusable element.
2. The dialog container should have role="dialog"
3. the next inner container should have role="document"
4. the control to close the dialog needs to be at the top of the DOM of tat inner container.
5. When the dialog is closed, or dismissed, the focus needs to return to the activating control.
6. use aria-label on the container with the role="dialog" to give a name to the dialog. If the name of the dialog is visible you can use aria-labelledby instead to point to the id of the element containing the name of the dialog.

David_Rothstein’s picture

Hm... Taking a step back here, are we sure we want the filter tips dialog to be modal in the first place?

Modal dialogs are useful for cases where there is a defined interaction to complete (e.g., clicking an "OK" button) but the filter tips are basically help text, and people might reasonably want to refer back and forth to them while adding content to the site. In that case, it seems like a non-modal dialog might be better.

I'm not sure if using a non-modal dialog would help with the accessibility issue or not, but I thought I remembered Everett suggesting somewhere that non-modal dialogs have fewer accessibility issues than modal ones?

Everett Zufelt’s picture

At the very least, the advantage of a non-modal dialog is that there is no need to attempt to sandbox users within the dialog. If we go with a modeless dialog it should be inserted into the dom as a direct sibling to the link which is used to activate it.

EvanDonovan’s picture

Everett & David: What about ksenzee's alternative suggestion in #258? Would an expandable div have the same accessibility problems?

Seems to me that would be a simpler way to lay this issue to rest than #242, etc.

Everett Zufelt’s picture

@Evan

The expandable fieldsets in core have no accessibilty problems at this time. This is likely the best structure to use if not a modless dialog, as it is reusable and tested.

RobLoach’s picture

Status: Needs work » Postponed

The later versions of jQuery UI add in the aria- and role attributes. If we get those updated, we'll be able to make use of the accessibility fixes: #1085590: Update to jQuery UI 1.9.

If it's missing something missing from Everett's summary, then it's something that we could work with the jQuery UI team to add in. Thanks for the details on this, Everett. Having solid direction on this really helps.

TwoD’s picture

I was just about to say what I see David_Rothstein already did. Why use a modal dialog? This seems to have been an assumption from way back that never had any pros/cons listed.

I don't know much about screen readers so sorry if I missed an important point here, but most replies mentioning them seem to only show how tough it is for them to process modals. The recent discussion following #263 seems to indicate there's no real requirement for the dialog to be modal, and I would personally really dislike being forced to repeatedly open/close it just to see what I can or can't do in a field while editing. If using a popup at all, I think I'd even prefer an "old school" new window so I can move it to my second monitor. Much like I do with the advanced help popup when working with Views etc...

If we follow KISS, the latest replies seem to be pretty solid arguments for using expandable divs, right?

RobLoach’s picture

Is there an initiative to get more Advanced Help-esque stuff in core?

EvanDonovan’s picture

@Rob: I remember that was happening about mid-way through D7, but stalled due, I think, to debates about a filter format for the internal links. I am not sure if work has been restarted.

David_Rothstein’s picture

Status: Postponed » Needs work
Issue tags: +UMN 2011

This issue was encountered by one participant during UMN Usability testing, in a big way. (We have a great video of it somewhere.) It would be lovely to get it fixed :) (Actually, #655388: Many ways to lose data on form input in the overlay is what we really need to fix, but this would help tons too.)

I'm also unpostponing this because it sounds like we haven't settled on using a modal dialog, so the accessibility fixes in jQuery 1.6 might not wind up being relevant for this issue.

asb’s picture

Wow, living since 4.7.3 and still not buried. Subscribing.

David_Rothstein’s picture

Related issue to watch: #1175830: Update to jQuery UI 1.10.2

geerlingguy’s picture

#263 / David_Rothstein:

Hm... Taking a step back here, are we sure we want the filter tips dialog to be modal in the first place?

#258 / ksenzee:

Maybe we have to leave the popup dialog in contrib until jQuery UI fixes its accessibility problems, and for core move the filter tips into an expandable div or something.

I'm completely for an expandable div, or something along those lines. There's no reason, in my mind, to perform an entire page load to look at some formatting tips/guidelines.

I just had a user (sitting in front of me) spend about 5 minutes typing up a node, then click that link. I had no idea it wasn't a target="_blank", and was surprised (as was the user, even more so) that all his diligent data entry had been promptly wiped out. This is a major DrupalWTF—not for developers like you and I (because we don't ever click that link anyways), but for content editors and end-users—and I think we should get this fixed.

I could care less about using target="_blank", as that (a) fixes the problem, and (b) works in every browser in existence, back to something like Netscape Navigator 2.0, XHTML strict standards be damned. It puzzles me as to why the W3C chose to deprecate that attribute, because there really is no other way to accomplish the same thing consistently and accessibly.

I'll be implementing the following in my theme's template.php file to fix this for my sites (for now):

/**
 * Implements theme_filter_tips_more_info().
 *
 * Open filter tips link in new page. Prevents data loss.
 * @see http_://drupal.org/node/87994#comment-4713488
 */
function THEMENAME_filter_tips_more_info() {
  return '<p>' . l(t('More information about text formats'), 'filter/tips', array('attributes' => array('target' => '_blank'))) . '</p>';
}

But, as I have discovered in reading through this issue, it looks like we won't be doing that; so, instead, I vote for a hidden div that simply expands to show filter tips; there's precedent for that all over drupal's admin interfaces, and it sounds a hundred times more accessible and user-friendly than overlays or modal dialogs...

quicksketch’s picture

It puzzles me as to why the W3C chose to deprecate that attribute, because there really is no other way to accomplish the same thing consistently and accessibly.

Don't worry, it's back again now in HTML 5. http://www.w3.org/TR/html5-diff/#changed-attributes :)

geerlingguy’s picture

Ah, didn't see that. So... if Drupal 8 is going to be HTML5 ready, then why not just add target="_blank" and be done with this?

The target attribute for the a and area elements is no longer deprecated, as it is useful in Web applications, e.g. in conjunction with iframe.

Reading around some other places, too, it seems most people are scrapping JS-based solutions to open things in new windows or popups and switching back to target="_blank". I can see some value to using a modal or a slide-open div, but if that's never going to happen due to bikeshedding...

EvanDonovan’s picture

Hmm...in light of the last 3 comments, why don't we just add target="_blank" for D8 and finally be done with this? I think this whole issue got sidetracked when it became a way for people to get a modal dialog framework into Drupal. It was really initially about fixing a simple usability problem. Right now, I always have to CTRL+click on the filter tips link because I know it would make me lose my work.

Of course, if we had one of those "You have entered text on this page" dialogs that came up when you were going to another page, it wouldn't be as much of a problem, but that is a separate issue.

RobLoach’s picture

If we can use target="_blank", can we get some Advanced Help-esque stuff in for this?

Hmm...in light of the last 3 comments, why don't we just add target="_blank" for D8 and finally be done with this?

Let's not rush it ;-) .

ksenzee’s picture

Status: Needs work » Needs review

#15: filter-tips.patch queued for re-testing.

ksenzee’s picture

Title: Filter tips modal popup » Quit clobbering people's work when they click the filter tips link

Changing the title to reflect that this isn't necessarily about a modal popup anymore. I agree we ought to just add _blank in there to stop the bleeding. That would be the patch at... wait for it... #15.

aspilicious’s picture

Lets get this in. I don't need any credit for this, just a reroll of #15.

RobLoach’s picture

Status: Needs review » Needs work

Instead of just having a lazy popup window, let's make it at least somewhat sane with jQuery.PopUpWindow() or a related plugin. Having a huge window pop up makes me want to throw up.

quicksketch’s picture

Also, as most people didn't notice (and I sure as hell wasn't going to bring it up after what happened in this issue), I pushed through a target="_blank" into core already as part of the file.module (even on the node form), but it's not in the HTML code (it's added by JS). If you upload a file and then click on the file name link, it opens in a new window. The same code also binds a nicely sized window to those links using window.open(). Let's not try to make a generic "window-opening solution" here though, it's literally a total of 2 lines to open the window and add the target.

EvanDonovan’s picture

Status: Needs work » Needs review

On technical review, the patch looks good :) Untested though, so still at needs review.

quicksketch’s picture

FileSize
1.06 KB

Here's an implementation that matches the File module. I couldn't find any way to make the contents of the popup look respectable (i.e. removing the blocks and header) without significant rearchitecturing. From my attempt, it'd look like we'd need to create a new delivery callback function for delivering popups. Let's just say, that would be another crazy rabbit hole. This patch matches the way we add a popup for File module and makes a nicely sized window. It's a good place to start.

lock2007’s picture

#285: filter_popup.patch queued for re-testing.

mrfelton’s picture

Status: Needs review » Needs work

I just tried out the patch in #285. It works, but the end result is pretty rough. The content of the popup is supposed to be help text, and should be limited to help text only. Appart from looking terrible aesthetically, presenting the user with an entire webpage with menus, blocks and everything else is pretty darn confusing as your also giving them a hundred other links that they could potentially click on and navigate away from the help text. I clicked the link to read the help text and the help text alone.

Fidelix’s picture

I have to agree with mrfelton.

I'm not sure which would be the best approach to implement this, but showing a simple popup with the help the user wanted would definitely work best.

Maybe we can just have a menu callback for filter help that doesn't render anything but $content, or even better, $content['tips']?

EvanDonovan’s picture

If only the filter tips should be rendered, then you could just have a menu callback that uses print, instead of return.

dqd’s picture

After reading each single post thru' the whole issue starting from top with comments and patches from ... years ago, I would like to inject a thought impetus here. But let me start with "what is up now" ...

1.) We have 3,4,5 (?) developers, who've spend a lot of work to bring us this awesome contribution of UI.dialog functionality at short hand by providing several versions of a patch, which was close before going into core. So close, that it hurts to scroll back in the issue and see how it has stopped so nearby before happening. Even if this particular use-case here has its own obstacles making hesitant to vote for this, it is still an improvement of admin experience. Thanks to TwoD, Jody Lynn, RobLoach, sun, gordon and many more for that very promising drupal_add_effect() "dream", which hopefully comes true, one way or another.

2.) And we still have this sticky years old bête noire with its back n' forth's making developers like RobLoach getting dissatisfied after spending so much time into a growing patch. All the concerns which may have or may have not caused this break indirectly, were needed, entitled and helpful. And I think I speak for respected core maintainers that purging overrides stuffing. But the concerns were equipped with wrong conclusions and has leaded to making a subjacent conceptional mistake beforehand by constraining consensus at the wrong place. What leads me to point 3:

3.) The pro's and con's here can not and never will lead to a final decision which meets all of your views in questions of accessibility or design. - Why? - Because it is an attempt doomed to failure trying to crave for a coherent decision, which has to be made rather by website builders and themers who use these tools afterwards, than on this table here which is about to deliver the options for that. That's why it got bogged down. A frameworks core should deliver "options" (or points of intersection to add these "options"), but not final "decisions", which would lead to another contrary motion then in the contrib to satisfy the other half of evangelists. It should rather left up to website builders and themers, regarding which clientele to target and what decision has to be made therefore. And they should bear the responsibility for their decisions made in questions of design and accessibility, not you as core contributor. That's their job. I am not offending here and I don't want to sound smart-alecky. But this comes from experience of working with developers for over a decade. I am a project lead over hear in Germany, not a developer at all. And I have more respect for what developers do in the deep of the bits than for what I do on top of it, actually, but ...

Round-up - Lets break it down: The issue is finally assessed as such not because of the first vexation from data loss after pressing the filter tips link allone, rather because of the adding fact, that there were NO option at all to change that after finding out. But it is only a small little corner of the whole Drupal core universe and it shoud not become such a big thing and should has been solved already by having all this lil' options discussed here in core. What finally means: What's wrong with having (1.) the jQuery.popupWindow() option mentioned by Rob Loach available, (2.) the awesome (my favourite) drupal_add_effect() option available, and (3.) the collapsing fieldset option available, all exchangeable in the site configuration? Or - for my sake - in the theme options or at minimum available as insertable handler, maybe with a arguable default setting? As if I understood correctly target _blank was a no-go from webchick, that'S why I left it out here. We may can group all that options into one so called "internal link handler", available for many use-cases. That would finally honor, value and factor in all the work, which has been done already in this issue queue. Delivering possibilities to choose from, would finally satisfy all parties, would emphasize the scalability of Drupal again, and would leave enough space for decisions of web administrators, depending on how the jQuery UI.dialog is shaping and improving accessibility in the next time.

dqd’s picture

I split that part here (my big comment above looks too frightening) and I add the issue links here:

I've spoken with sun, RobLoach, catch and webchick on IRC #drupal-contribute and - if I'm not mistaken - there was a accordance to, that we actually need at least 3 issues:

(a) the one here which already exists to approve that we can access the handlers

(b) another one to extract that drupal_add_effect() handler code and the others into an own issue. LInk to that issue is here #1404712: drupal_add_effect() to use basic jQuery UI effects from PHP (without JS)

(c) and a third one for jQuery UI version 1.9 and higher to make sure that we can use all improvements from jQuery's next big releases ... Issue already exists here -> #1085590: Update to jQuery UI 1.9

xjm’s picture

Issue tags: -D7DX

Tagging.

webchick’s picture

Priority: Normal » Major

This has been consistently found in every UX study we've ever done. Escalating to Major.

xjm’s picture

Also, not that this issue needs another tag, but this monster could really use a concise-yet-thorough summary that explains what approaches have been tried, what issues were found with them, what the current status is, etc.

jenlampton’s picture

Issue tags: +GoogleUX2012

We saw this in the 2012 Google Usability study too, along with #1440662: UX regression: Prevent links in node preview from being clicked

jenlampton’s picture

aaaand removing the other tag for the same thing :) but here's a fun video of watching someone loose their content, if you'd like to experience some #facepalm

Jacine’s picture

Can we please just add the target="_blank" to the anchor and call it a day? Yeah... that means re-roll patch in #15.

I'd really rather not see an JavaScript for this. It's not like we are popping up a small window with focused content, and the code would be useless on mobile devices. Yeah, it's not 100% ideal, but let's not pretend that the code for this module is so great anyway. it would fix the bug, and let this issue RIP already. Also, if a themer removes/changes the wrapper markup here, it would still work, and it would be easy to override the traditional way.

Also, it's valid in HTML5: http://www.w3.org/TR/html5/browsers.html#valid-browsing-context-name-or-...

webchick’s picture

I actually would be totally fine with that, even in XHTML-land (D7). Resolving this pain is worth a small W3C warning, esp. given it's a legacy thing that's resolved in HTML5.

After, if we wanted to, we could always file a non-major follow-up to switch from target="_blank" to an approach along the lines of quicksketch's that simply rendered the content area rather than the entire page in the modal. I'd rather deal with that at #1175830: Update to jQuery UI 1.10.2 though.

sun’s picture

Status: Needs work » Needs review
FileSize
601 bytes

No tests required.

Jacine’s picture

Status: Needs review » Reviewed & tested by the community

Great! #299 looks good to me. :) Happy comment #300.

ksenzee’s picture

Yes please. Confirmed it works.

dqd’s picture

ksenzee++ for doing it ;)

I can confirm, patch works

geerlingguy’s picture

Another RTBC here, for goodness' sake!

webchick’s picture

Status: Reviewed & tested by the community » Fixed

Ok! :)

Committed and pushed to 8.x and 7.x. YAY. And sorry for being a purist back in July 2009. :\

jide’s picture

Wow ! Funny to see it was addressed in #15 back in july 2009 :) Maybe there is something we should learn from this.

amateescu’s picture

Don't you just love core development? :)

Tor Arne Thune’s picture

I never thought my old geek heart could experience this feeling of joy again. Great work on the managing/persuading!

NWwaterboy’s picture

lol .. just realized this thread started in 2006 . Wonder what the record is for longest running thread successfully completed.

catch’s picture

dww’s picture

Yeah, although the oldest still open and legitimate bug is #2946: Login fails and no warning is issued if cookies are not enabled. Oddly, I *just* replied there earlier today to try to move it along...

mysql> SELECT n.nid, n.title FROM project_issues pi INNER JOIN node n ON pi.nid = n.nid WHERE pi.pid = 3060 AND sid IN (1, 4, 8, 13, 14, 15) AND category IN ('bug', 'task') ORDER BY pi.nid LIMIT 10;
+-------+---------------------------------------------------------+
| nid   | title                                                   |
+-------+---------------------------------------------------------+
|  2946 | no warning is issued if cookies are not enabled         | 
|  6234 | Block module variable naming convention cleanup         | 
|  6371 | All comments marked as read when viewing any page.      | 
|  6463 | Add static caching for user_roles()                     | 
|  7204 | Allow domain aliases to be tracked by statistics module | 
|  7881 | Add support to drupal_http_request() for proxy servers  | 
| 10566 | Forum can not appear in multiple containers             | 
| 12274 | Do not validate email addresses with trailing periods   | 
| 13594 | Fix 404 handling without clean URLs                     | 
| 13643 | Maxlength for "Path to custom logo" is too short        | 
+-------+---------------------------------------------------------+
10 rows in set (0.01 sec)

Status: Fixed » Closed (fixed)

Automatically closed -- issue fixed for 2 weeks with no activity.

webchick’s picture

Issue tags: +7.13 release notes

x

cweagans’s picture