Sitefinity 4 attach user control to page on creation - sitefinity-4

I'm using Sitefinity 4.2. I have created a masterpage, with content placeholders, which I am using as a template when creating a new page. I then have several different custom user controls, which I drop into the different placeholders, and set the parameters for them through the control edit forms. This standard scenario works fine.
As our end users are not very sophisticated, I would like to create a new scenario in which, when a new page is created via the admin console on the basis of my masterpage, different controls are programmatically inserted into the various placeholders, and values for control properties are set. All the end user then has to do is to tweak the property values on one or two controls, and he's done.
Any ideas on how I would go about doing this?

For what you're describing, I'd suggest utilizing page templates. You can specify a master page to use and also drop widgets in to the placeholders you've established. Users can then create new pages based off of this template and your settings will carry over.
Widgets that you configure in a template can't be modified outside of it so you'll want to leave any that the user should be able to change, from the page editor, out.
You can create a page template by going to Design->Page Templates in the admin section.

Related

Settings for Custom Tab in Teams

If you go into amend Settings for a custom tab that you have created before, is there anyway to get the existing websiteUrl and contentUrl values in your configuration page?
The microsoftTeams.getContext method doesn't seem to make these Urls available (like it does entityId).
Thanks.
I think you'll need to persist this your side (e.g. in a database), and re-query them from your settings page. This is exactly why the "save" button won't become enabled until you're ready for it (by calling microsoftTeams.settings.setValidityState) - it's for your code to do whatever it needs before allowing the user to actually save any changes.

Oracle Apex - Can I edit layout of Individual Pages?

How can i edit layout of individual pages in Oracle Apex. I tried changing templates and properties in shared components but it applies to all the pages.
On one page, I need different layout of buttons and items and on the other page, a different.
You can create more than one page template, for different types of page. And you can also make page-specific styling changes using in-line CSS in the page attributes.
It applies to all pages, because all of your pages refer one template. And when you change this template, all pages changes. Create a copy of template, and then refer your individual page to this new template.

Rally custom dropdown to multiSelect

We have a custom drop down and need to make it a multiSelect. Your answer gives me hope but so far, I have not figured out how this can be done. I played around how to build custom grids using JavaScript. Is it possible to make an existing custom drop-down list to a multiSelect? If it is, can be it used in the existing Rally screens or do we have to use interactive grids to be able to update the field?
Please advice on how this can be achieved.
Thank you, Rajani.
A custom dropdown cannot be turned into a custom multiselect. There are no custom fileds in Rally of mulitselect type. You may write a custom app using AppSDK2 with a MultiObjectPicker
For example, here is a rallymutiobjectpicker that allows selection of multiple testsets:
this._testSetPicker = Ext.create('Rally.ui.picker.MultiObjectPicker', {
itemId:'testsetpicker',
modelType: 'testset'
});
Later you may use _getRecordValue() to get the array of selected records:
var selectedTestSets = this._testSetPicker._getRecordValue();
A custom grid and a custom html app are not the same.
A UI component created with AppSDK2 cannot be added to a custom grid, and cannot be added to existing Rally pages, e.g. a Defect or User Story details page, or any summary page.
The MultiObjectPicker can only be used in a custom code that you write and then copy your deployment html and paste it into a custom html page.
The developer portal also has links to great videos by David Thomas. See all the links in this post for details.

MVC 3. Load menu and content separately

I have an app with 3 sections:
Main menu;
Context Menu - Related to selected item in main menu;
and Page body - Related to selected item in context menu;
"Main menu" and "Context menu" are based on membership. I don't want to load them everytime my page loads, because that would consume resources database. So, I'm using ajax to load main menu only one time, and when an item is selected, I load the context menu for that item.
My problem is: Every form's post will erase my menu.
Question: Will I have to build my entire application using ajax? I don't wanna do that, because it is too much simpler do a post in the form then send all data to controller with ajax.
Until now, I have 2 options:
Load my menus with ajax and the page body with IFRAME, so the post's will not render again my menus.
Do everything using ajax;
Is there any alternative to load my menus with ajax and be able to use form's post?
Sorry if I wasn't clear enough.
The sentence that gave me a pause is this "I don't want to load them everytime my page loads, because that would consume resources database."
You see, I've build quite a lot of apps, that display menus and sub-menus based on user roles (what you called membership). This has never been an issue from the resources or database perspective.
You can access all the membership information that you need once, when your used is being logged in. In the simplest case user's identity will be stored in the context along with the roles they have (HttpContext.User), so you do not to need a database lookup at all to get this information on every request. Note that with this scenario no ajax is required either.
If for whatever reason you can't store your membership information in the context like this, you still can store in in session (if in-memory) or in encrypted Cookies.
Now, I understand, that I don't all the details of your scenario, and that may be in your scenario what you are trying to do is warranted, however I suggest you think it through again, as under normal circumstances what you indicate is a problem (database resource) should not be a problem at all.
The bottom line is: if you alter your application that it stores the membership information when user logs on you won't have your problem to start with.
You don’t have to build all of your application using Ajax. But in this scenario Ajax may be the best way forward.
Following is my suggestion
Create your data entry for inside a dev
Have each input controller marked with a class (say ‘dataEntry’)
Create a javascript function to iterate the dev and build a list of all elements that has class dataEntry
Build a json object using the list. Use the name of each element as property name and value as the property value
Use jquery ajax to post this to the controller action
[optional] you can use .done and .fail methods to take action on success or failures of the call
I know this may look intimidating, but if you have many data entry forms, you can re-use this code.

Is it possible to maintain different sessions (users) in different window tabs using Spring 2.5?

We have a requirement where support for different users in different tabs of a browser window. How can we achieve this in Spring 2.5? The application is based on Users, where users will have their own agents and articles. An internal user should be able to login to different user accounts in different tabs at same time and manipulate their data. Any help is much appreciated.
A browser's cookie store does not distinguish between different windows or tabs when deciding what cookies to send. So a cookie based approach won't help.
My suggestion for an alternative would be to have a hidden "userName" parameter that is passed back and forth as a URL query parameter for all requests from a given tab or window. You could finesse the setting of the parameter in browser requests by using some Javascript to add a hidden parameter to each of the HTML forms in the page just loaded. The parameter value would be snarffed from the query string of the current page URL. You'd just need to make sure that all pages included stuff in the header to load the JS and run it when the page load completed.
Generally speaking, no, because all of the tabs within the browser window share the same cookies.
One way to do it would be use multiple domain names all pointing at the same app. Each domain name would have its own set of cookies. You would need to have some way of switching to a new domain name after you open a new tab.
How about, have a set of bookmark toolbar bookmarks, each corresponding to a different domain name. Control-click on the bookmark and it opens in a new tab. You could provide the users links in your navigation to the different domains that they can drag onto their toolbar.
Depending on what browsers your users are using you could get even slicker - in some browsers Javascript window.open() opens a new tab. You could have the JS compute the new domain name before the window.open().

Resources