First, let me say that I love views and that I have been using it a LONG time. Thank you.

I find something extremely strange and wrong for administrators when adding displays to a view. When you set up the view defaults, they are exactly that: defaults. That's great and makes perfect sense. It's a starting place for your all your displays that follow.

When you add a display you shouldn't have to tell the display to override the defaults. That is why you make a new display typically; something needs be different based on the defaults you have already set. It doesn't make sense for a new display to update how all the other displays work if you don't hit "override." The changes in the new display should be unique to that display only without overriding the defaults settings by default.

Feedback?

Comments

akahn’s picture

It depends on how you use Views. The point of having a default is that these settings will cascade down into your other displays unless overridden. Often, I'll have 3 displays of a view, and these views will have a lot in common, with some things changed. Having Views work this way makes sense. If the different displays of your views had nothing in common, you should be using separate views not separate displays of the same view.

robomalo’s picture

Your case does make sense for your use. I have many views for many reason. My thought process was like this:

"I want to make a view with multiple pages or blocks... Okay, each display has these things in common: node-type-x, content-type-y, and date-field-z. I'll set X, Y, and Z in the defaults since those never change and I need that data for each display. Great, I don't have to worry about those again.

Now, I want to make a new page. What's different? Okay, this view has a header. I'll set that. Wait? Why is that changing my default view? I don't want my next display to have this header. It's pulling the same nodes, but it needs a different header and to sort differently. Okay, I hit override. Display overridden.

Now on to display page 2. Okay, still using X, Y, and Z; good. Now I'll just be making my header for this new display.... OH NO! I didn't hit override! NO! I didn't hit save after making my last display and it's gone. Sheesh! Now I have to make it again. That blasted override button way off to the right!"

akahn’s picture

Ah, so you want Views to "default to override" rather than "default to change the default". I think that could help me as well. Could be a cool feature, maybe as a setting for each display. Wanna write a patch?

robomalo’s picture

I wouldn't mind writing a patch. I guess I have three options:

1. Change the default behavior, no options.
2. Make it a setting for each View (least useful... I think...could get confusing).
3. Make it a setting to change how all your views work for you by default (could be in site config and be a work around until the proper way is figured out for Views core.) More of a module.

What do you think?

akahn’s picture

I would guess that the maintainers of this module would not want to add settings, especially since the Views UI is pretty overwhelming (for newbs at least) as it is, and AFAIK, there are no separate 'settings' for Views as it stands. Which leads toward option 1.

If you go with 1, how do you tell a setting to stick with whatever is set in the default, even as that changes?

nessumsara’s picture

I'm new to Views 2 and this issue has been daunting me. I read in the documentation (in Advanced Help) that you can create different displays that do not have to stick with the default. However, nowhere in the documentation does it tell you how. It wasn't until I found this through a google search that I figured out how it's done. Thanks robomalo! So the first thing I would say is whomever is responsible for documentation, please add this to the Advanced Help basics for creating a display.

Secondly, I have to agree with robomalo that the current interface is not intuitive for the exact reasons he described. When you create a new display it should be default inherit the default display, but as soon as you change a setting, that automatically becomes an override. The untouched settings will continue to change if the default display is changed. If you decide later you want a display setting to revert back to fallow the default settings then you click on the "revert to default" or "use default" setting button which will appear where the override button was, but only if the current setting is not the default.

This is just more intuitive. The place to change default settings should be the default display not the latest display your creating. It just doesn't make sense that you could overwrite the settings for all of your displays because you accidentally forgot to hit the override button. This change would not add any more settings. In fact it would be less, since that button all the way to the right would only appear when you've overridden a default setting.

merlinofchaos’s picture

The problem with what you describe is that if you *do* want to change the default settings you have to go back to the default display. This is really inconvenient if you're working with, say, just one display and because you don't want to click back to the default to make changes, you end up overriding a bunch of stuff because it's fewer clicks. Then when you add a block 2 months later, your defaults are all wrong because all the changes are only on the page display.

There's two sides to every coin here, and I'm not sure what we suggest here is any better. I made the update button 3 times bigger so that when you go to click on it, it says something different; but I can't really help that people don't recognize that. Maybe doing a bunch of color changes or something is the way to go to make it even more visible.

nessumsara’s picture

I think I understand your concern and I've already addressed. If you want your change to update the default, you click on the "Update Default" button, similarly to how you click on the "Override" button now. Perhaps a survey could help determine whether our assertion is true, that when you create a new display and go to change a setting, it's far more likely that you'll only want to make that change on the new display, than make the change to all displays that use the default setting. The way it is now seems to go against the conventions I've seen in nearly all software I've used that had default settings (including drupal core and 3rd party modules). Can you think of another software tool that handles defaults like views 2 does?

nevets’s picture

I use views both ways (multiple display, common settings and multiple display, a number of overrides). I prefer starting a new display with the defaults, I also think at this point changing the behavior would be confusing.

merlinofchaos’s picture

nessumsara: I just want to add that the overrides are one of the most heavily documented thing *in* advanced help, precisely because I expect new users don't know how to do it. The fact that you think it's not documented at all I find kind of disturbing. But the pages on displays talk about them, there is a special page dedicated to overrides that's accessible from the help link right next to the override button, and it gets a mention in various other places as well.

The one change that seems like it *could* be sensible is that where you currently have "Update default display" "Cancel" I could see changing that to "Update only this display" "Update default display" and "Cancel" when it's currently not overridden, which could get you automatic overriding. But really long button names, which I'm not entirely comfortable with.

cbrantley’s picture

This is a great discussion and I'd like to add my 2 cents.

I've been using views for a long time and have come to accept the way that defaults are handled and overridden. However, I've recently found myself training a number of less-technical folks on creating views for several TV station sites. In 99% of the cases the way defaults are handled has been very unintuitive for the user.

On multiple occasions users would accidentally change the default settings when they thought they were just changing a local setting on the current display.

I've thought about this for a bit and the ideal behavior for this, IMHO, would be as follows:

- New displays inherit the defaults (The normal behavior)
- Any change to the new display's setting would override the defaults and become "local" settings to that view.
- Any overridden settings would have a "revert to default" or similar button that would remove the local settings and use the defaults.

This behavior is much more intuitive in my opinion. It still allows the cascading of default values where appropriate. It also eliminates the possibility of changing default setting unintentionally since any changes would only ever affect the display you are currently working in. It also makes setting up views more efficient since since you don't have to click the "override" button constantly.

Thanks!

naero’s picture

What if one were able to add a new display to an already-configured view, and after it is created have a button "Override", thereby automatically overriding all fields in this new display. This would allow a one-stop click to override, instead of doing the overrides, one setting/field at a time.

I'm not saying get rid of the original functionality as it stands today, just add this capability. I could see such a button existing above the "Sort criteria" section and below the "Export/Clone" links.

Thoughts?

michelle’s picture

I like #10. I've been using Views a long time and I still get confused with overriding. Especially when you have stuff like filters where you're overriding all of them and not just the one you're changing. Anything to make this clearer is a big +1 from me. :)

Michelle

michelle’s picture

Oh, also, if "Update only this display" switched to "Revert to defaults" when the item is overridden, that would get rid of the WTF I have in another issue about no easy way to revert things to default. Two WTFs for the price of one. :)

Michelle

michelle’s picture

Shoot, I meant "Update default display". Confusing myself.

So basically, if it's not overridden, you have "Update default display" "Update this display" (which overrides) and "Cancel". When it is overridden, you have "Revert to defaults" "Update this display" and "Cancel".

Michelle

Letharion’s picture

Status: Active » Fixed

Now fixed in dev.

Status: Fixed » Closed (fixed)

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