Discussions
Categories
Groups
Community Home
Categories
INTERNAL ENABLEMENT
POPULAR
PUBLIC CLOUD
PRIVATE CLOUD
Quick Links
MY LINKS
HELPFUL TIPS
Back to website
Home
Web CMS (TeamSite)
required item
maggi
I have a dropdown - value : 1-7
based on user choice i have to show the number of containers.If the user select 2, then I have to show 2 containers. Its working fine but not able to save the dcr 'cause the item within the container is required item. what happens is even when i enter the item on 2 container still not saving but if i enter the content in the item for other containers (7) then its save the dcr. How to I tackle this situation.
Any ideas?
Maggi
TeamSite 6.5
Unix - Solaris
Find more posts tagged with
Comments
cliffhanger
If you have 7 replicants to start with but you want to have only 2, remove rest of the replicant instances using IWItem.deleteInstance().
jbonifaci
If they aren't replicants, but truly separate containers, use formapi to do all of your setRequired's when you are hiding/unhiding the containers. Do setRequired(true) for all of the ones you setVisible(true) and setRequired(false) for all of the ones you setVisible(false).
maggi
cliff,
thanks for the quick response. can u tell me where i can get some sample code for this. I don't see it in the formAPI documentation also.
I am attaching my existing code here.
<script>
<![CDATA[
hideAll();
// Add item handler on the change of page section
IWEventRegistry.addItemHandler("/table/table_layout/table_settings/no_of_columns", "onItemChange", showSectionItems);
showSectionItems(IWDatacapture.getItem("/table/table_layout/table_settings/no_of_columns"));
function showSectionItems(section) {
// If no_of_columns is undefined, hide all
hideAll();
if (section.getValue() != undefined) {
var sectionValue = section.getOptions()[section.getValue()].value;
showSelected(sectionValue);
}
IWDatacapture.redraw();
}
function hideAll() {
var item = IWDatacapture.getItem("/table/table_layout/table_settings/column_settings_col_1");
setItemStatus(item, 0);
var item = IWDatacapture.getItem("/table/table_layout/table_settings/column_settings_col_2");
setItemStatus(item, 0);
var item = IWDatacapture.getItem("/table/table_layout/table_settings/column_settings_col_3");
setItemStatus(item, 0);
var item = IWDatacapture.getItem("/table/table_layout/table_settings/column_settings_col_4");
setItemStatus(item, 0);
var item = IWDatacapture.getItem("/table/table_layout/table_settings/column_settings_col_5");
setItemStatus(item, 0);
var item = IWDatacapture.getItem("/table/table_layout/table_settings/column_settings_col_6");
setItemStatus(item, 0);
var item = IWDatacapture.getItem("/table/table_layout/table_settings/column_settings_col_7");
setItemStatus(item, 0);
}
function showSelected(selectedValue) {
if (selectedValue == "1") {
var item1 = IWDatacapture.getItem("/table/table_layout/table_settings/column_settings_col_1");
setItemStatus(item1, 1);
var item2 = IWDatacapture.getItem("/table/table_layout/group/row/column_1");
setItemStatus(item2, 1);
}
else if (selectedValue == "2") {
var item1 = IWDatacapture.getItem("/table/table_layout/table_settings/column_settings_col_1");
setItemStatus(item1, 1);
var item2 = IWDatacapture.getItem("/table/table_layout/table_settings/column_settings_col_2");
setItemStatus(item2, 1);
}
else if (selectedValue == "3") {
var item1 = IWDatacapture.getItem("/table/table_layout/table_settings/column_settings_col_1");
setItemStatus(item1, 1);
var item2 = IWDatacapture.getItem("/table/table_layout/table_settings/column_settings_col_2");
setItemStatus(item2, 1);
var item3 = IWDatacapture.getItem("/table/table_layout/table_settings/column_settings_col_3");
setItemStatus(item3, 1);
}
else if (selectedValue == "4") {
var item1 = IWDatacapture.getItem("/table/table_layout/table_settings/column_settings_col_1");
setItemStatus(item1, 1);
var item2 = IWDatacapture.getItem("/table/table_layout/table_settings/column_settings_col_2");
setItemStatus(item2, 1);
var item3 = IWDatacapture.getItem("/table/table_layout/table_settings/column_settings_col_3");
setItemStatus(item3, 1);
var item4 = IWDatacapture.getItem("/table/table_layout/table_settings/column_settings_col_4");
setItemStatus(item4, 1);
}
else if (selectedValue == "5") {
var item1 = IWDatacapture.getItem("/table/table_layout/table_settings/column_settings_col_1");
setItemStatus(item1, 1);
var item2 = IWDatacapture.getItem("/table/table_layout/table_settings/column_settings_col_2");
setItemStatus(item2, 1);
var item3 = IWDatacapture.getItem("/table/table_layout/table_settings/column_settings_col_3");
setItemStatus(item3, 1);
var item4 = IWDatacapture.getItem("/table/table_layout/table_settings/column_settings_col_4");
setItemStatus(item4, 1);
var item5 = IWDatacapture.getItem("/table/table_layout/table_settings/column_settings_col_5");
setItemStatus(item5, 1);
}
else if (selectedValue == "6") {
var item1 = IWDatacapture.getItem("/table/table_layout/table_settings/column_settings_col_1");
setItemStatus(item1, 1);
var item2 = IWDatacapture.getItem("/table/table_layout/table_settings/column_settings_col_2");
setItemStatus(item2, 1);
var item3 = IWDatacapture.getItem("/table/table_layout/table_settings/column_settings_col_3");
setItemStatus(item3, 1);
var item4 = IWDatacapture.getItem("/table/table_layout/table_settings/column_settings_col_4");
setItemStatus(item4, 1);
var item5 = IWDatacapture.getItem("/table/table_layout/table_settings/column_settings_col_5");
setItemStatus(item5, 1);
var item6 = IWDatacapture.getItem("/table/table_layout/table_settings/column_settings_col_6");
setItemStatus(item6, 1);
}
else if (selectedValue == "7") {
var item1 = IWDatacapture.getItem("/table/table_layout/table_settings/column_settings_col_1");
setItemStatus(item1, 1);
var item2 = IWDatacapture.getItem("/table/table_layout/table_settings/column_settings_col_2");
setItemStatus(item2, 1);
var item3 = IWDatacapture.getItem("/table/table_layout/table_settings/column_settings_col_3");
setItemStatus(item3, 1);
var item4 = IWDatacapture.getItem("/table/table_layout/table_settings/column_settings_col_4");
setItemStatus(item4, 1);
var item5 = IWDatacapture.getItem("/table/table_layout/table_settings/column_settings_col_5");
setItemStatus(item5, 1);
var item6 = IWDatacapture.getItem("/table/table_layout/table_settings/column_settings_col_6");
setItemStatus(item6, 1);
var item7 = IWDatacapture.getItem("/table/table_layout/table_settings/column_settings_col_7");
setItemStatus(item7, 1);
}
}
function setItemStatus(item, status) {
item.setVisible(status);
}
]]>
</script>
thanks again
Maggi
JonathonG
As jbonifaci said above, set the required field at the same time you're doing setVisible.
So, based on the code you posted, you need to make changes to your setItemStatus function. I'll assume that the required field that is in each container is called 'req'. Your setItemStatus function should then look like this:
function setItemStatus(item, status) {
item.setVisible(status);
var reqItemPath= item.getName() + "/req";
var reqItem = IWDatacapture.getItem(reqItemPath);
reqItem.setRequired(status);
}
Jonathon
Interwoven Developer
Allstate, Inc.
jbonifaci
Maggie, within your setItemStatus function, also do a setRequired(status) for each of the items within the container.
maggi
after I set the required item its working fine.
Now if i had 2 in the drop-down, 2 containers displayed and I entered the info. later I changed to 1 in the drop-down so there is only 1 container, the 2nd container is gone. but when i save the dcr i still see the 2nd container values. how do I get rid of that value?
Thanks in advance
Maggi
cliffhanger
later I changed to 1 in the drop-down so there is only 1 container, the 2nd container is gone
When you do setVisible(false) for the second container, reset all its value to null/empty string.
So basically you can have a check to see it has non-empty children values before doing setVisible(false), If yes, set them to null/empty string.
jbonifaci
I think you mean you want to get rid of the values, even though the field is hidden, correct? At the same time you are doing your setRequired, do something along the lines of:
if (status == 0)
{
itemObject.setValue(''); // Note: This is two single quotes.
}