How to set visibility on a component in RTC source control - rtc

The visibility of a component within a stream is 'Project Scoped', this is the view I see when I double click the component from within the stream :
I would like it to be 'Team Private' as 'Project Scoped' means this component is visible just to the team ?
On the stream this component belongs to I have set the 'visibility' to a team area, does this mean that just members of the team will be able to view this component even though at the component level the visibility is 'Project Scoped' ?
When I attempt to 'change' the visibility of this component by clicking 'change' button (in above screenshot) this is the error I receive :
How can I change the visibility to 'Team Private' ?
Update : To change the visibility :
1. expanded the stream tree within 'Team Artifacts'
2. right click the component
3. click 'Change Owner'
4. Change to team that this component is to be private to and ensure 'Restrict to members of this team area and its child team areas'
Following these steps the visibility changed to 'Team Private'
However, changing the component visibility via opening the stream and updating same component from within the stream does not change the 'Visibility' . I think this is RTC inconsistency ?

All the access management possibilities are explained in "Controlling access to source control in Rational Team Control".
The "Read protect some components but give public access to others" is close to what you are looking for.
But you can also protect at the folder level for a specific team area.
Prior to RTC 40, there was no access control on the folder or file level in the repository so keep this in mind when laying out your file system with certain documents that should be hidden. Access control at the file and folder level was added in RTC 4.0.
Regarding the "scoped" notion:
For components owned by the project area, its access is scoped the same way the project area is.
(so only the member of the project area can see/access it)
For components owned by an individual user, the owner can specify how it is scoped.
That is why you get the:
You cannot change the access control on components owned by project area and team area.
They inherit their access control settings from a project area or team area.
You need a component owned by a user in order to change its visibility.

Related

Sensenet: Pagination on Document Library

It is possible to define pagination on document library?
I have a document library with more that 10000 documents... when I open the library occurs an timeout.
Actually SenseNet already does this! They just don't deliver it in the standard list control. If you open up the PRC and navigate to /Root/IMS/BuiltIn/Portal you'll see a list control with paging. The code can be found at /Root/Global/renderers/UserExploreGrid.ascx as User Control portlet. You can copy the code and change it to meet your needs.
Our company prefers to create User Control portlets and use Datatables with calls to the SenseNet OData API using skip and top to deliver pages.
Finally, given that SenseNet Content is stored as a tree structure (in SQL!), you can move the Content after creation so that data is organized hierarchically. A common solution is to take the first letter of the DisplayName and create a sub-folder from that letter, thereby reducing the number of items at a single node.
Here's what the paging looks like:
The short answer is no. Right now there isn't a built in functionality for that.
The long answer is that you can make a pagination yourself. One of the core member of sensenet made a grid where you can use pagination. It won't work with the current free to use releases because they lack the js files she used. But the idea behind it, is using a custom view. Which you can achieve by adding a system folder named Views under a the Document library and adding your custom view there.
You can use this grid for Explore, just follow these steps:
Go to the Explore action page, and switch editor mode on the PRC.
Place a ClientContext portlet (this can find under the Portlets->Application section in the portlet picker dialog) to the Wide column. Set portlet (client context porlet) properties, Apparance to None. It is a technical portlet, which allow get the CurrentContext in javascript. This is a very important element to work with this grid. The Grid use the client context.
Place a UserControlPortlet (In the portlet picker, Portlets->Application section) to the Wide Column.
Set portlet properties:
4.1. Portlet title: <%$ Resources: PortletTitles, Items%>
4.2. User Control path: /Root/Global/renderers/UserExploreGrid.ascx
Checkin Page modification on the PRC.
Enjoy your pageable explore portlet.
Keep in mind that this grid is specifically designed for users, so they will miss actions in the top menu. These must be handwritten. Then I suggest you copy the UserControl ( /Root/Global/renderers/UserExploreGrid.ascx)
and then put the action list on it . You can read more info about action list here: http://wiki.sensenet.com/ActionList
Br,
maros

Durandal 2.0: Bind shell subnav to current child router

My app can be considered as a collection of Sections and Subsections. My end goal is to have a shell with the main navbar mapped to each Section and another 'sub' navbar beneath that is a tabbed navigation mapping to the Subsections of the currently selected Section. I also don't (yet?) have a need for a page to show for any Section; that is, only one of the Subsection pages is shown when you navigate to a Section.
In the previous version of Durandal, I retrieved all the current users' available (based on permissions) Sections and Subsections after logon. I then added each individual Subsection as a route using the mapRoute function on the router. I also extended the router with observable collections of Sections and Subsections, which were bound to the shell navbars.
For Durandal 2.0, how do I bind elements on the shell to a child router? Do I and can I create all the necessary child routers as soon as my logon operation is complete and I have the list of all Sections and Subsections that are available to the user?
Please let me know if this question doesn't make sense or needs more information. Thank you.

Why is 'Components' tree structure empty - RTC source control

In RTC source control when I expand the Team Area I have this view :
I can see the stream and its components. What decides if components should appear in Components folder ? As can be seen in screenshot this is currently empty. For other developers this is populated with components even though they cannot see the streams ?
You see all components that are visible to you.
In other words, it depends on the ownership for each component.
Any component owned by the project area or your Team Area would be displayed in the Component section.
Any component owned by a single resource (a member of the RTC project area) or another Team Area (that you aren't part of) won't be displayed there.
The same would apply for the streams: check the owner of those streams to understand why a resource doesn't see it.
Whats the point of hiding a stream if the components themselves are not hidden ?
The point (in hiding Stream even though it doesn't hide component) is preventing users to deliver to that stream: they can still work on the same set of component (visible because of the right ownership), but they can no longer see (and deliver to) a given Stream.

Are some options missing from my team area view?

When I open my 'Team Area' in rtc I just have 'Overview' & 'Links' tabs :
But reading accepted answer for this question :
Restrict user access at component level within a stream
there are more options available for updating a team area ?
Does my rtc setup need to be configured so these options are viewable ?
No need to modify your RTC setup:
A Team area will by default inherit its process configuration from the parent area (team or project).
You need to click on the section "Process: inherited" (once unfolded, it reads "Process Customization").
You will see a link "Customize the process".
Clicking on it will git you access to the other tabs:
Process Customization
Process Customization Source
The Process Customization section on a Team Area with those tabs will look like:

pass action form object from one action to another

I have 2 action classes which share the same action form. I have defined the action form in request scope for both of them. Can you please tell me how to transfer this form object from 1st action to 2nd action.
I am avoiding sessions due to IE shares the same session across windows/tabs.
Employee Management app:
When admin edits an employee, it has 3 tabs. Personal, Education, Background.
Each tab represents a separate action class, which all share the common employeeForm action form class. So when admin is on Personal tab, it populates the employeeForm object with all the employee related data. Please tell me how to transfer this object from one tab to another, so that I dont hit the DB again.
Struts 1 or Struts 2?
If it's Struts 1.x, then you need to add <html:hidden> tags within the tab's <html:form>, for each of the properties you want to share between tabs.