Forum for discussing general topics related to Couch.
34 posts Page 2 of 4
Whew, there's a lot to pick through in this thread ;)

@Bartonsweb -
Have you perhaps overlooked docs/miscellaneous/drafts-and-previews.html? Is this indicative of a discoverability issue?

Couch will always struggle with balancing a desire for simplicity/minimalism and advanced feature sets. We must ensure things remain user-friendly for non-tech-savvy users. As you correctly pointed out, picking through a long list of links in the sidebar is not ideal. It might be neat to allow certain templates, such as those used for taxonomies (categories) to be hidden from the sidebar and made accessible through their "parent" template. As you stated, with tab navigation available, perhaps it could be an option -
list-tags.png
list-tags.png (4.01 KiB) Viewed 15481 times

Adding a collapse/expand function to the sidebar template groups was originally (and is still) planned. It could remember state across page visits with some basic JS utilizing cookies. This is very doable, but I decided to wait until the new admin panel is at least implemented in its current form.

I understand the point you are making that to just be dropped onto the first template upon login can be disorientating. I think though this would be better handled by you as the designer/developer. I say this because I don't think we could devise a sufficiently appropriate, generic solution for all sites. You could create a template (w/ hidden='1') that is ordered first and uses a type 'message' editable region to display arbitrary markup to help your client more easily navigate the admin panel.

@Tomarnst -
I think the ability to group editable regions under tabs would be quite helpful for multi-language support. This would not be a "native" solution and still likely be inadequate for situations where you have more than a few languages.

I am not too familiar with how other popular platforms handle multiple languages. What do you think about a solution like the following? Selected editable regions are defined to allow content for each supported language. A button panel is placed above these regions to enable toggling between the different contents. This would require a fair bit of JS but I think I could manage... Efforts would be made to ensure that the DOM isn't bloated, so that this is performant.
region-lang-ui.png
region-lang-ui.png (5.96 KiB) Viewed 15481 times
@Cheesypoof yes that is my bad indeed! Actually that stemmed from one of my clients requesting the feature (they mustve missed it themselves) moving that button or replicating it below the "save page" button when creating a new page would help with discoverability issues! I've never myself needed to create drafts so never ran into the problem, though it is a very useful feature for my clients. Thanks!

Yes those tabs are exactly what I had in mind, it helps to organise the panel in cleaner way. The folders are managed through that method and things such as tags, etc should be the same (in my opinion) this removes some of the clutter from the sidebar and puts it where it belongs.

Collapsing the categories on the sidebar is much needed I agree, the ability to customise every page of the panel will be very good but if we can make the default panel easier to use, it will bring couch a long way.

I like those language tabs, too. Although it still becomes difficult to manage with a lot of languages (perhaps a drop down instead?) though I agree I do not know of any cms that supports multilingual sites in such a way.

Perhaps googles translate API is a better alternative to having to repeat the content on every single page in every supported language. Although, this is down to the developer to implement.
Image
@ Cheesypoof

I can follow your approach and this would be quite neat, but wouldn't it be easier to have the language switch to change the whole admin page and only show the selected language ?

Maybe this could be an interesting read http://www.apphp.com/tutorials/index.php?page=multilanguage-database-design-in-mysql
I load frameworks and write bugs on top of them, after that I rearrange the code so that it looks like a cool product.
re the admin panel landing page - the more I think about this the more I like the idea of a 'Welcome' page.

I like to pass on hints & tips to clients e.g. "create a line break: SHIFT/RETURN", how to check for and delete whitespace - those wretched empty paragraph tags that some clients generate all the time in the wysiwyg and advice on URLs - don't use "click here" .... etc etc

It would be great to present say a scrolling list of such tips on the Welcome page, along with other key information. And what if that could be dynamically updated from a file on my own server across all my client's sites?
I was going to post a feature-request, but I thought I'd post it here instead as more of a 'general discussion' post.

One of my further gripes with the admin panel, that I didn't mention in the original post but come across daily and wasn't really sure if there was a better way of doing it - for clonable pages (This includes nested templates AND galleries, events calendars etc) Any type of template that can be cloned and has multiple views.

I've always had to clutter the admin panel with multiple template files in order to handle the various "Views" of a template. What I mean by this is, I may require adding editable regions into a globals.php template or something similar to be able to have editable regions for my list-view, archive view etc.

While the current method works okay, it is another piece of "Clutter" we have to add to the admin panel. In order to have a cloned template with a list-view and custom, editable text or other regions - we must use another template to add editable types to this templates view (Other than page-view).

I would REALLY love to be able to group my editables inside a cloned template into different views. That is to say, I'd like to be able to define an editable as apart of the list-view and this then be reflected in both the templates output and in the admin panel.

I'll provide some examples to help illustrate my terrible description, and I'm sure others have opinions on this and may even have better ideas and solutions (If so, do post them here!)

We have a cloned template, lets call it "Services" and it is a list of services that the business' we're creating a website for provides. Each one has a fairly comprehensive and detailed bunch of information to print with it. So the easiest (and most logical for SEO etc) couch markup for this is a cloned template.

So we go ahead and create the template, works fine - right? We have our cloned pages full of editable regions, lets say we have just two for this template.. keeping it simple.

So our template looks something like this:

Code: Select all
<?php require_once( 'couch/cms.php' ); ?>
<cms:template title='Services' clonable='1' >

<cms:editable type='richtext' name='content' label='Content for page' />

<cms:editable type='image' label='Icon for this service' name='icon' width='100' height='100'/>


</cms:template>
<cms:if k_is_page><!-- Page-view -->

<cms:else /><!-- List-view -->

</cms:if>


Looks fine, inside the Page-view we can access those editable types. Now for the list-view we can list each of the pages using the <cms:pages> tag, again all fine.

But now we may want some specific text on the list-view page.
Typically now we would need another template, usually we already have a globals.php template, so we can just throw it in there, right?
Well, what if we have 2-3 of these cloned templates in a site all of which need their own editable regions for the list-view - that globals template is going to be pretty packed. We could create a separate template for each list-view that we need, or one template specifically dedicated to it, but that's still going to be clutter to the admin panel, it also separates what's relevant to one template and mixes it with other templates across the panel, thus confusing it more.

I'm sure there's probably other ways to do it, but I think we could quite easily keep it all to one template, thus de-cluttering the admin panel further, while also keeping a template and all of its associated views and templates (See: taxonomies) in one place.
How do we do this?
Well, what if we could target the editables inside of services.php to be a part of a specific view?
Here - an example

Code: Select all
<?php require_once( 'couch/cms.php' ); ?>
<cms:template title='Services' clonable='1' >

<cms:view target='list'>
<cms:editable type='richtext' name='list_text' label='List-view Top Text' description='Text for the top of the templates list-view' />
</cmsview>

<cms:view target='archive'>
<!-- I'm sure you can see what I'm getting at -->
</cms:view>

<!-- Default, editables outside a view are apart of the "Page view" don't require placing inside a view -->
<cms:editable type='richtext' name='content' label='Content for page' />
<cms:editable type='image' label='Icon for this service' name='icon' width='100' height='100'/>



</cms:template>
<cms:if k_is_page><!-- Page-view -->

<cms:else /><!-- List-view -->
<cms:show 'list_text' />
</cms:if>


Each of the editables placed inside of a view wrapper in the template tag would be accessible in that view inside the template as you can see above.

In the admin panel - each of these views can be separated into tabs above the output. Similar to where the "manage folders" tab currently is. This further de-clutters the admin panels sidebar, but more than that it isolates each template to itself which is one of the main goals here. It helps to tackle that confusion clients have when they want to change a text and are given confusing instructions to go to a completely different template in order to change it. Also, it means every template has all of its related parts within itself, which greatly increases the UX of the entire panel, it makes much more logical sense to have them within the template itself, accessible by tabs.

Again, this is just my opinion and what I would love to see for couch. It could greatly help with the admin management of sites :)

Feel free to discuss or ask questions - and definitely provide your own solutions if you have them.
Image
@Bartonsweb

Thanks for the input Dave.

I had a discussion with @cheesypoof about this very topic sometime back.
The globals.php solution indeed comes off as a hack and something has to be done to tackle this issue elegantly.
@potato, you could create a type 'message' editable region containing an iframe pointing to your website.

Sidebar group toggling mocked up:

Attachments

Isn't it an option to make use of Google Polymer to solve the admin clutter ? The logic of elements has a lot in common with couch, or .... am I totally off topic here.
I load frameworks and write bugs on top of them, after that I rearrange the code so that it looks like a cool product.
I'm going to try that out @cheesypoof - great suggestion. Quite a powerful feature actually - to deliver information to your portfolio of clients - and even do a little sales pitch of some sort perhaps?
I actually coincidentally looked over a bit of the Polymer documentation last week and it certainly looks like an awesome front end framework. It reminds me of AngularJS somewhat... If I had more practical experience with such frameworks, I probably would have chosen to use one of them from the outset of the redesign.

Yes, there is lots in common in the sense that we use many similar user interface components. But ultimately, we are both still working with HTML/CSS/JS. If you spot any component they handle nicely, that we could utilize, do point it out.
34 posts Page 2 of 4
cron