I'm trying to create a three-panel layout:
left: a list of items generated with ng-repeat (ie: group1, group2, group3...)
top: a couple of buttons for each group-page (ie: home, browse, users,...)
right: the content panel
Now, there a re a couple of problems that I'm running into:
I want the user to always have one group selected, and this should be expressed in the url (/group/:groupId). This groupId can only be known after getting the groups from the backend database, but I still want this to be the default page. In other words the website's homepage should have a groupId in it, depending on the current user.
When a user clicks on of the top panel links, he should be taken to that group-specific page (/group/:groupId:/home)
When a user clicks on of the group links in the left panel, he should be taken to the currently selected page of that group (ie: if the user was at /group/1/home and clicks on group2, he should be taken to /group/2/home, if he was at /group/1/browse and clicks on group2, he should be taken to /group/2/browse)
Anyone got a clue as how to achieve this behavior? I've been trying to wrap my head around this but can't seem to find a good way to achieve this. Please post and ask if you need clarification.
EDIT: I'm using UI-router
In case it could be of use to someone:
I solved this by:
adding a global resolve that loads the user's groups.
providing a service to manage the current group-state
building all references to the homepage using the groupId in that service
not relying on href, but using ui-sref (as intended by ui-router) as described here: ui-router wiki: ui-sref
Related
I've been using wagtail-modeladmin to create custom lists of certain page types. That gives me the ability to edit those pages. But I'd also like to be able to click through somehow to the "normal" admin explorer version of those pages, and be able to view/add child pages to them.
essentially giving myself a column with the little arrows in on the right, just like in the normal wagtail admin page explorer...
OK I know it's bad form to answer your own question, but I've got this working by using a custom method on the model admin object that reverse wagtails admin urls:
class MySpecialPageModelAdmin(ModelAdmin):
def view_children(self, obj):
url = reverse('wagtailadmin_explore', args=[obj.id])
return format_html(f'View Children')
list_display = ('title', 'live', 'view_children')
but actually, I think I'm not going to end up using this, just replacing this particular modeladmin with a direct link to the right place in the explorer.
I'm not sure what I'm fully after really hence this could easily be a duplicate of another topic - if so please direct me :)
Anyway, what I want to do is something like a shopping page, where there is a page listing out all the items. This part I can do fine :)
The issue I have is I only want one page which "details" each item - as they all share the same layout. So in this case, depending on what's selected, it routes to a details page (maybe with corresponding ID of some sort) that displays the details of whatever clicked.
Is this possible? Hope I've explained this well enough - if not please let me know.
TIA
You don't need to use a route for each item. You can use a route for the page itself (with ngView, for example) to present the details page, and then (assuming you have an object with the data) you present the current item's model appropriately.
If you can present some code I can give you a better idea.
I'm new to Ionic Framework and AngularJs as well.
The app I'm working on has a view where user can search and the results are presented in a list. When the user clicks one of the list items, it navigates to details view. When user presses the "back" button at the header bar, the search text box and results list are empty and he must search again.
What is the recommended approach to, when the user presses the back button from details view, bring the search view populated with the previous search term and results? (would be nice to have the scroll position restored as well)
I know I can just store this information into some service, but this sounds like a lot of work.
Are there any other cool stuff like a view state service or something that can do this for me?
I know I can just store this information into some service, but this
sounds like a lot of work.
really?
app.factory('searchData', function() {
return {
searchTerm: '',
results: []
};
});
that's how it's done. But it sounds like what you're really looking for is a cure for laziness...
I have a custom module in DNN 7 that has a data structure where items belong to categories (called "sections", not DNN taxonomy, just a simple list of section names). The module edit screens work so that on the view control you may click on an edit link on each category, which loads the category edit screen (passing the category id). This works great, and when you save I use Globals.NavigateURL() to return to the view screen. This all works as intended.
On each category edit screen I also have a list of the items within that category, each with an edit link. Clicking the edit link opens the item edit screen, passing the correct item id, and allowing me to edit that item. This all works great, until you save. The save works properly, but when I want to send the user back to the edit screen for the category it doesn't work. When I use:
Response.Redirect(EditUrl("SectionId", sectionid.ToString(), "EditSections"), true);
...nothing happens. It simply doesn't redirect anywhere. This is exactly the same URL I'm using to get to the category edit page in the first place:
EditUrl("SectionId", Eval("SectionId").ToString(), "EditSections")
And then I use a similar URL to get to the item edit page:
EditUrl("ItemId", Eval("ItemId").ToString(), "EditItems")
I don't understand why using the same URL to navigate to the same page I already navigated to would simply not do anything. For now I am sending them all the way back to the view, but it's painful if you need to add several items to the same category to have to navigate back into the category and add another item, only to be sent back to the view.
Anyone see anything like this before?
Have you tried to use the overload of NavigateUrl instead of EditUrl?
Globals.NavigateURL(TabId, "EditSections", "mid", ModuleId.ToString(), "SectionId", Eval("SectionId").ToString())
I haven't seen that myself but I would have to assume that somehow the context is being lost with EditURL and you're not getting sent to the proper location due to that.
I would suggest you try one of two things (or both).
Debug the URL that EditURL is returning and see if you can find the
difference.
Use NavigateURL for all your links and pass in MID=## for your
moduleid as a querystring parameter, to ensure that the proper
values are being passed.
UPDATE: If you're trying to have multiple edit views, and move between them, you might look at using a "loader" instead of having separate module definitions for the edit controls. Basically have a single Edit.ascx file defined, and it loads other ASCX files within it, injecting into a Panel. The View control on this module http://dnnsimplearticle.codeplex.com/ does that, but I haven't tried it with an edit control before.
Before I get into the details, here is the overall goal:
I want to have a group of users which get access to a feed, and any new items that appear in that feed they will get access to as well.
Details:
I am using Organic Groups, Feeds/Feed Items, and Views. I have setup a single Organic Group and added a single user to it. I have taken a Feed and added it to the group as well.
I have tried a few different combinations of the queries for Views and here is where I am at currently: http://cl.ly/2T1a0s1A0j3A0I0d3i1u
There is a relationship setup between the Feed and the Feed Item. There is a filter setup that says if the user has permission to view the Feed they should be able to see the Feed Item.
However, when I login to the user account and visit the URL (which used to just be static and take no arguments, ignore the % I just added) I get a blank page.
It would be great to get some help figuring out this problem and/or some pointers on how to debug it + learn more about Views and how I could use Views/OG to solve this problem.
Thanks,
David
The best way I did OG Groups was to create the group under content type. Once that is done. go back into content type and click on Feed scroll down to OG Groups tab click on it. You should seeNODE in the drop-down box and Groups in a select box below. Make sure node is clicked and Group is highlighted. Click save and now do the same for Feed Item. There is one thing to be mindful of, when the feed imports, it will be bundled with the group however the feed it self will be separate from the nodes created linked only by the group. One way to make it easier to manage is to place the feed and the feed items into the same book when setting up the feed. It akes life much easier that way.