[Home] [Help]
270:
271: TYPE number_tbl_type IS TABLE OF NUMBER INDEX BY BINARY_INTEGER;
272: TYPE number_tbl_type_idx_vc2 IS TABLE OF NUMBER INDEX BY VARCHAR2(15);
273: TYPE varchar_tbl_type IS TABLE OF VARCHAR2(255) INDEX BY BINARY_INTEGER;
274: TYPE ui_page_elements_tbl_type IS TABLE OF CZ_UI_PAGE_ELEMENTS%ROWTYPE INDEX BY VARCHAR2(15);--kdande; Bug 6875560; 12-Mar-2008
275:
276: -- fix for bug 6837809 : skudryav 28-Mar-2008
277: TYPE ui_page_el_int_tbl_type IS TABLE OF CZ_UITEMPLS_FOR_PSNODES_V%ROWTYPE INDEX BY BINARY_INTEGER;
278:
716: --
717: PROCEDURE Initialize_Sequences IS
718: BEGIN
719:
720: SELECT CZ_UI_PAGE_ELEMENTS_S.nextval INTO g_currentUINode FROM dual;
721: g_currUISeqVal := g_currentUINode;
722:
723: SELECT CZ_UI_PAGE_REFS_S.nextval INTO g_currentPageRef FROM dual;
724: g_currPageRefSeqVal := g_currentPageRef;
1008: --
1009: FUNCTION allocateId(p_sequence_name IN VARCHAR2) RETURN NUMBER IS
1010: l_id NUMBER;
1011: BEGIN
1012: IF p_sequence_name='CZ_UI_PAGE_ELEMENTS_S' THEN
1013: IF g_currentUINode
1015: ELSE
1016: SELECT CZ_UI_PAGE_ELEMENTS_S.nextval INTO g_currUISeqVal FROM dual;
1012: IF p_sequence_name='CZ_UI_PAGE_ELEMENTS_S' THEN
1013: IF g_currentUINode
1015: ELSE
1016: SELECT CZ_UI_PAGE_ELEMENTS_S.nextval INTO g_currUISeqVal FROM dual;
1017: g_currentUINode := g_currUISeqVal;
1018: END IF;
1019: RETURN g_currentUINode;
1020: ELSIF p_sequence_name='CZ_UI_PAGE_REFS_S' THEN
1094: -- return new element_id
1095: --
1096: FUNCTION get_Element_Id RETURN VARCHAR2 IS
1097: BEGIN
1098: RETURN TO_CHAR(allocateId('CZ_UI_PAGE_ELEMENTS_S'));
1099: END get_Element_Id;
1100:
1101: --
1102: -- mark UI page as deleted
1152: ui_def_id = g_UI_Context.ui_def_id;
1153: --
1154: -- mark elements as already deleted
1155: --
1156: UPDATE CZ_UI_PAGE_ELEMENTS
1157: SET deleted_flag=G_YES_FLAG
1158: WHERE ui_def_id= g_UI_Context.ui_def_id AND
1159: page_id=p_page_id;
1160:
1161: ELSIF p_hmode = G_DELETE_ELEMENTS THEN
1162: --
1163: -- mark elements as already deleted
1164: --
1165: UPDATE CZ_UI_PAGE_ELEMENTS
1166: SET deleted_flag=G_YES_FLAG
1167: WHERE ui_def_id= g_UI_Context.ui_def_id AND
1168: page_id=p_page_id AND
1169: deleted_flag IN(G_MARK_TO_DELETE);
1189: deleted_flag = G_NO_FLAG
1190: WHERE page_id = p_page_id AND ui_def_id = g_UI_Context.ui_def_id AND
1191: deleted_flag IN(G_MARK_TO_ADD,G_MARK_TO_REFRESH);
1192:
1193: UPDATE CZ_UI_PAGE_ELEMENTS
1194: SET deleted_flag = G_NO_FLAG
1195: WHERE ui_def_id = g_UI_Context.ui_def_id AND
1196: page_id = p_page_id AND
1197: deleted_flag NOT IN(G_NO_FLAG,G_YES_FLAG,G_LIMBO_FLAG);
1203: deleted_flag = G_NO_FLAG
1204: WHERE page_id = p_page_id AND ui_def_id = g_UI_Context.ui_def_id AND
1205: deleted_flag IN(G_MARK_TO_ADD,G_MARK_TO_REFRESH);
1206:
1207: UPDATE CZ_UI_PAGE_ELEMENTS
1208: SET deleted_flag = G_NO_FLAG
1209: WHERE ui_def_id = g_UI_Context.ui_def_id AND
1210: page_id = p_page_id AND
1211: deleted_flag NOT IN(G_NO_FLAG,G_YES_FLAG,G_LIMBO_FLAG);
1216: SET deleted_flag = G_NO_FLAG
1217: WHERE page_id = p_page_id AND ui_def_id = g_UI_Context.ui_def_id AND
1218: deleted_flag NOT IN(G_YES_FLAG,G_LIMBO_FLAG,G_MARK_TO_DELETE);
1219:
1220: UPDATE CZ_UI_PAGE_ELEMENTS
1221: SET deleted_flag = G_NO_FLAG
1222: WHERE ui_def_id = g_UI_Context.ui_def_id AND
1223: page_id = p_page_id AND
1224: deleted_flag NOT IN(G_YES_FLAG,G_LIMBO_FLAG,G_MARK_TO_DELETE);
1760: -- return UI element with element_id = p_element_id
1761: --
1762: FUNCTION get_UI_Element(p_element_id IN VARCHAR2,
1763: p_page_id IN NUMBER)
1764: RETURN CZ_UI_PAGE_ELEMENTS%ROWTYPE IS
1765: l_ui_node CZ_UI_PAGE_ELEMENTS%ROWTYPE;
1766: BEGIN
1767: SELECT *
1768: INTO l_ui_node
1761: --
1762: FUNCTION get_UI_Element(p_element_id IN VARCHAR2,
1763: p_page_id IN NUMBER)
1764: RETURN CZ_UI_PAGE_ELEMENTS%ROWTYPE IS
1765: l_ui_node CZ_UI_PAGE_ELEMENTS%ROWTYPE;
1766: BEGIN
1767: SELECT *
1768: INTO l_ui_node
1769: FROM CZ_UI_PAGE_ELEMENTS
1765: l_ui_node CZ_UI_PAGE_ELEMENTS%ROWTYPE;
1766: BEGIN
1767: SELECT *
1768: INTO l_ui_node
1769: FROM CZ_UI_PAGE_ELEMENTS
1770: WHERE ui_def_id = g_UI_Context.ui_def_id AND
1771: page_id=p_page_id AND
1772: element_id = p_element_id;
1773: RETURN l_ui_node;
1792: p_template_id IN NUMBER,
1793: p_template_name IN VARCHAR2 DEFAULT NULL) RETURN VARCHAR2 IS
1794:
1795: l_counter NUMBER;
1796: l_ui_node_name CZ_UI_PAGE_ELEMENTS.name%TYPE;
1797:
1798: BEGIN
1799:
1800: SELECT COUNT(element_id)+1 INTO l_counter FROM CZ_UI_PAGE_ELEMENTS
1796: l_ui_node_name CZ_UI_PAGE_ELEMENTS.name%TYPE;
1797:
1798: BEGIN
1799:
1800: SELECT COUNT(element_id)+1 INTO l_counter FROM CZ_UI_PAGE_ELEMENTS
1801: WHERE ui_def_id=g_UI_Context.ui_def_id AND
1802: page_id=p_page_id AND
1803: ctrl_template_id=p_template_id AND
1804: deleted_flag NOT IN(G_YES_FLAG,G_LIMBO_FLAG,G_MARK_TO_DELETE);
1865:
1866: --
1867: -- get UI Action Id associated with a given ui node
1868: --
1869: FUNCTION get_UI_Action_Id(p_ui_node IN CZ_UI_PAGE_ELEMENTS%ROWTYPE)
1870: RETURN NUMBER IS
1871: l_ui_action_id CZ_UI_ACTIONS.ui_action_id%TYPE;
1872: BEGIN
1873: SELECT ui_action_id
2307:
2308: --
2309: -- return page_ref node of nearest page
2310: --
2311: FUNCTION get_UI_Page_Ref_Node(p_ui_node IN CZ_UI_PAGE_ELEMENTS%ROWTYPE)
2312: RETURN CZ_UI_PAGE_REFS%ROWTYPE IS
2313:
2314: l_page_ref_node CZ_UI_PAGE_REFS%ROWTYPE;
2315:
2440: --
2441: -- the function retrurns a Model Path
2442: -- for a given persistent_node_id
2443: --
2444: FUNCTION get_Model_Path(p_ui_node IN CZ_UI_PAGE_ELEMENTS%ROWTYPE)
2445: RETURN VARCHAR2 IS
2446:
2447: l_page_path VARCHAR2(32000) := '';
2448: l_parent_ui_node CZ_UI_PAGE_ELEMENTS%ROWTYPE;
2444: FUNCTION get_Model_Path(p_ui_node IN CZ_UI_PAGE_ELEMENTS%ROWTYPE)
2445: RETURN VARCHAR2 IS
2446:
2447: l_page_path VARCHAR2(32000) := '';
2448: l_parent_ui_node CZ_UI_PAGE_ELEMENTS%ROWTYPE;
2449:
2450: PROCEDURE construct_Path(p_current_ui_node IN CZ_UI_PAGE_ELEMENTS%ROWTYPE) IS
2451: l_ui_node CZ_UI_PAGE_ELEMENTS%ROWTYPE;
2452: BEGIN
2446:
2447: l_page_path VARCHAR2(32000) := '';
2448: l_parent_ui_node CZ_UI_PAGE_ELEMENTS%ROWTYPE;
2449:
2450: PROCEDURE construct_Path(p_current_ui_node IN CZ_UI_PAGE_ELEMENTS%ROWTYPE) IS
2451: l_ui_node CZ_UI_PAGE_ELEMENTS%ROWTYPE;
2452: BEGIN
2453:
2454: IF p_current_ui_node.pagebase_persistent_node_id <>
2447: l_page_path VARCHAR2(32000) := '';
2448: l_parent_ui_node CZ_UI_PAGE_ELEMENTS%ROWTYPE;
2449:
2450: PROCEDURE construct_Path(p_current_ui_node IN CZ_UI_PAGE_ELEMENTS%ROWTYPE) IS
2451: l_ui_node CZ_UI_PAGE_ELEMENTS%ROWTYPE;
2452: BEGIN
2453:
2454: IF p_current_ui_node.pagebase_persistent_node_id <>
2455: p_current_ui_node.persistent_node_id THEN
2527: l_parent_seq_nbr NUMBER;
2528: BEGIN
2529: SELECT NVL(MAX(seq_nbr),0)
2530: INTO l_seq_nbr
2531: FROM CZ_UI_PAGE_ELEMENTS
2532: WHERE ui_def_id=g_UI_Context.ui_def_id AND
2533: parent_element_id=p_parent_element_id AND
2534: deleted_flag NOT IN(G_YES_FLAG,G_MARK_TO_DELETE);
2535: RETURN l_seq_nbr;
2553:
2554: --
2555: -- return COUNT ( of UI pages of a given UI) + 1
2556: --
2557: FUNCTION get_Num_Elements_On_Page(p_page_node IN CZ_UI_PAGE_ELEMENTS%ROWTYPE)
2558: RETURN NUMBER IS
2559: l_counter NUMBER;
2560: BEGIN
2561: SELECT COUNT(element_id)
2559: l_counter NUMBER;
2560: BEGIN
2561: SELECT COUNT(element_id)
2562: INTO l_counter
2563: FROM CZ_UI_PAGE_ELEMENTS
2564: WHERE ui_def_id=p_page_node.ui_def_id AND
2565: page_id=p_page_node.page_id AND ctrl_template_id IS NOT NULL AND
2566: deleted_flag NOT IN(G_YES_FLAG,G_MARK_TO_DELETE);
2567: RETURN l_counter;
2961:
2962: --
2963: -- check - is it UI Reference or no
2964: --
2965: FUNCTION is_UI_Reference(p_ui_node IN CZ_UI_PAGE_ELEMENTS%ROWTYPE)
2966: RETURN BOOLEAN IS
2967: l_ui_ref_exists VARCHAR2(1);
2968: BEGIN
2969: SELECT 'x' INTO l_ui_ref_exists
2977: RETURN FALSE;
2978: END is_UI_Reference;
2979:
2980: --
2981: -- remove Instance Management Controls from CZ_UI_PAGE_ELEMENTS
2982: --
2983: PROCEDURE remove_Instance_Controls(p_ui_node IN CZ_UI_PAGE_ELEMENTS%ROWTYPE) IS
2984:
2985: l_changed_pages_tbl number_tbl_type;
2979:
2980: --
2981: -- remove Instance Management Controls from CZ_UI_PAGE_ELEMENTS
2982: --
2983: PROCEDURE remove_Instance_Controls(p_ui_node IN CZ_UI_PAGE_ELEMENTS%ROWTYPE) IS
2984:
2985: l_changed_pages_tbl number_tbl_type;
2986: l_suppress_refresh_flag CZ_UI_PAGE_ELEMENTS.suppress_refresh_flag%TYPE;
2987: l_mark_flag CZ_UI_PAGE_ELEMENTS.deleted_flag%TYPE;
2982: --
2983: PROCEDURE remove_Instance_Controls(p_ui_node IN CZ_UI_PAGE_ELEMENTS%ROWTYPE) IS
2984:
2985: l_changed_pages_tbl number_tbl_type;
2986: l_suppress_refresh_flag CZ_UI_PAGE_ELEMENTS.suppress_refresh_flag%TYPE;
2987: l_mark_flag CZ_UI_PAGE_ELEMENTS.deleted_flag%TYPE;
2988:
2989: BEGIN
2990:
2983: PROCEDURE remove_Instance_Controls(p_ui_node IN CZ_UI_PAGE_ELEMENTS%ROWTYPE) IS
2984:
2985: l_changed_pages_tbl number_tbl_type;
2986: l_suppress_refresh_flag CZ_UI_PAGE_ELEMENTS.suppress_refresh_flag%TYPE;
2987: l_mark_flag CZ_UI_PAGE_ELEMENTS.deleted_flag%TYPE;
2988:
2989: BEGIN
2990:
2991: FOR i IN(SELECT page_id,element_id,parent_element_id,suppress_refresh_flag
2988:
2989: BEGIN
2990:
2991: FOR i IN(SELECT page_id,element_id,parent_element_id,suppress_refresh_flag
2992: FROM CZ_UI_PAGE_ELEMENTS
2993: WHERE ui_def_id=p_ui_node.ui_def_id AND
2994: persistent_node_id=p_ui_node.persistent_node_id AND
2995: element_type IN(G_UI_NONBOMADDINST_NODE_TYPE,G_UI_BOMADDINST_NODE_TYPE) AND
2996: deleted_flag NOT IN(G_YES_FLAG,G_MARK_TO_DELETE, G_LIMBO_FLAG))
2995: element_type IN(G_UI_NONBOMADDINST_NODE_TYPE,G_UI_BOMADDINST_NODE_TYPE) AND
2996: deleted_flag NOT IN(G_YES_FLAG,G_MARK_TO_DELETE, G_LIMBO_FLAG))
2997: LOOP
2998: IF i.suppress_refresh_flag=G_YES_FLAG THEN
2999: UPDATE CZ_UI_PAGE_ELEMENTS
3000: SET deleted_flag=G_MARK_TO_DEASSOCIATE,
3001: persistent_node_id=0
3002: WHERE ui_def_id=p_ui_node.ui_def_id AND
3003: page_id=i.page_id AND
3002: WHERE ui_def_id=p_ui_node.ui_def_id AND
3003: page_id=i.page_id AND
3004: element_id=i.element_id;
3005: ELSE
3006: SELECT suppress_refresh_flag INTO l_suppress_refresh_flag FROM CZ_UI_PAGE_ELEMENTS
3007: WHERE ui_def_id=p_ui_node.ui_def_id AND page_id=i.page_id AND
3008: element_id=i.parent_element_id;
3009: IF l_suppress_refresh_flag=G_YES_FLAG THEN
3010: UPDATE CZ_UI_PAGE_ELEMENTS
3006: SELECT suppress_refresh_flag INTO l_suppress_refresh_flag FROM CZ_UI_PAGE_ELEMENTS
3007: WHERE ui_def_id=p_ui_node.ui_def_id AND page_id=i.page_id AND
3008: element_id=i.parent_element_id;
3009: IF l_suppress_refresh_flag=G_YES_FLAG THEN
3010: UPDATE CZ_UI_PAGE_ELEMENTS
3011: SET deleted_flag=G_MARK_TO_DEASSOCIATE,
3012: persistent_node_id=0
3013: WHERE ui_def_id=p_ui_node.ui_def_id AND
3014: page_id=i.page_id AND
3013: WHERE ui_def_id=p_ui_node.ui_def_id AND
3014: page_id=i.page_id AND
3015: element_id=i.element_id;
3016: ELSE
3017: UPDATE CZ_UI_PAGE_ELEMENTS
3018: SET deleted_flag=G_MARK_TO_DELETE
3019: WHERE ui_def_id=p_ui_node.ui_def_id AND
3020: page_id=i.page_id AND
3021: element_id=i.element_id;
3031: --
3032: -- merge two Page Flows - parent and child Page Flows into one Page Flow
3033: -- p_ui_node is a first node of child Page Flow
3034: --
3035: PROCEDURE merge_Page_Flows(p_ui_node IN CZ_UI_PAGE_ELEMENTS%ROWTYPE) IS
3036: TYPE number_tbl_type IS TABLE OF NUMBER INDEX BY BINARY_INTEGER;
3037: l_changed_target_ids_tbl number_tbl_type;
3038: l_ui_page_ref_node CZ_UI_PAGE_REFS%ROWTYPE;
3039: l_target_path CZ_UI_PAGE_REFS.target_path%TYPE;
3120:
3121: --
3122: -- split one Page Flow into two Page Flows - parent and child
3123: --
3124: PROCEDURE split_Page_Flow(p_ui_node IN CZ_UI_PAGE_ELEMENTS%ROWTYPE) IS
3125: TYPE number_tbl_type IS TABLE OF NUMBER INDEX BY BINARY_INTEGER;
3126: l_changed_target_ids_tbl number_tbl_type;
3127: l_target_page_ids_tbl number_tbl_type;
3128: l_ui_page_ref_node CZ_UI_PAGE_REFS%ROWTYPE;
3214:
3215: --
3216: -- check - is CX valid or no ?
3217: --
3218: FUNCTION get_CX_Button_Status(p_ui_node IN CZ_UI_PAGE_ELEMENTS%ROWTYPE)
3219: RETURN VARCHAR2 IS
3220:
3221: l_model_node CZ_UITEMPLS_FOR_PSNODES_V%ROWTYPE;
3222: l_ui_cx_command_name CZ_EXPRESSION_NODES.data_value%TYPE;
3321: --
3322: -- refresh expl ids in UI tables
3323: --
3324: PROCEDURE sync_Expl_Ids(p_node IN CZ_UITEMPLS_FOR_PSNODES_V%ROWTYPE,
3325: p_ui_node IN CZ_UI_PAGE_ELEMENTS%ROWTYPE,
3326: p_expl_id IN NUMBER) IS
3327:
3328: BEGIN
3329:
3328: BEGIN
3329:
3330:
3331: IF p_expl_id <> p_ui_node.model_ref_expl_id THEN
3332: UPDATE CZ_UI_PAGE_ELEMENTS
3333: SET model_ref_expl_id=p_expl_id
3334: WHERE ui_def_id=p_ui_node.ui_def_id AND
3335: page_id=p_ui_node.page_id AND
3336: element_id=p_ui_node.element_id;
3360: --
3361: -- refresh expl ids in UI tables
3362: --
3363: PROCEDURE sync_Expl_Ids(p_node IN CZ_UITEMPLS_FOR_PSNODES_V%ROWTYPE,
3364: p_ui_node IN CZ_UI_PAGE_ELEMENTS%ROWTYPE) IS
3365: l_model_ref_expl_id NUMBER;
3366: BEGIN
3367: l_model_ref_expl_id := get_Expl_Id(p_model_id => p_node.devl_project_id,
3368: p_ps_node_id => p_node.ps_node_id,
3375:
3376: --
3377: -- replace Template Id of UI node p_ui_node
3378: --
3379: PROCEDURE replace_Template_Id(p_ui_node IN CZ_UI_PAGE_ELEMENTS%ROWTYPE,
3380: p_model_node IN CZ_UITEMPLS_FOR_PSNODES_V%ROWTYPE) IS
3381:
3382: l_element_signature_id NUMBER;
3383: l_counter NUMBER;
3383: l_counter NUMBER;
3384:
3385: BEGIN
3386:
3387: SELECT COUNT(*)+1 INTO l_counter FROM CZ_UI_PAGE_ELEMENTS
3388: WHERE ui_def_id=p_ui_node.ui_def_id AND
3389: page_id=p_ui_node.page_id AND
3390: element_signature_id=p_model_node.root_element_signature_id AND
3391: deleted_flag NOT IN(G_YES_FLAG,G_MARK_TO_DELETE, G_LIMBO_FLAG);
3389: page_id=p_ui_node.page_id AND
3390: element_signature_id=p_model_node.root_element_signature_id AND
3391: deleted_flag NOT IN(G_YES_FLAG,G_MARK_TO_DELETE, G_LIMBO_FLAG);
3392:
3393: UPDATE CZ_UI_PAGE_ELEMENTS
3394: SET ctrl_template_id=p_model_node.template_id,
3395: element_signature_id=p_model_node.root_element_signature_id,
3396: deleted_flag=DECODE(deleted_flag,G_MARK_TO_ADD,G_MARK_TO_ADD,G_MARK_TO_REFRESH),
3397: name=p_model_node.template_name||' - '||l_counter
3524: END IF;
3525: END LOOP;
3526:
3527: FOR i IN (SELECT *
3528: FROM CZ_UI_PAGE_ELEMENTS
3529: WHERE ui_def_id = g_UI_Context.ui_def_id AND
3530: deleted_flag = G_NO_FLAG)
3531: LOOP
3532: BEGIN
3980:
3981:
3982: FUNCTION find_AMN_Element_Above(p_xml_node xmldom.DOMNode) RETURN VARCHAR2 IS
3983:
3984: l_element_id CZ_UI_PAGE_ELEMENTS.element_id%TYPE;
3985:
3986: PROCEDURE AMN_Element_Above(p_node xmldom.DOMNode) IS
3987:
3988: l_node xmldom.DOMNode;
4172:
4173: END set_User_Attribute;
4174:
4175: --
4176: -- this procedure adds CZ_UI_PAGE_ELEMENTS records
4177: -- which correspond to first level UI template references
4178: --
4179: PROCEDURE add_Extends_Refs(p_xml_node xmldom.DOMNode,
4180: p_ui_node IN CZ_UI_PAGE_ELEMENTS%ROWTYPE) IS
4176: -- this procedure adds CZ_UI_PAGE_ELEMENTS records
4177: -- which correspond to first level UI template references
4178: --
4179: PROCEDURE add_Extends_Refs(p_xml_node xmldom.DOMNode,
4180: p_ui_node IN CZ_UI_PAGE_ELEMENTS%ROWTYPE) IS
4181:
4182: l_seq_nbr NUMBER;
4183: l_template_id NUMBER;
4184: l_template_name CZ_UI_TEMPLATES.template_name%TYPE;
4181:
4182: l_seq_nbr NUMBER;
4183: l_template_id NUMBER;
4184: l_template_name CZ_UI_TEMPLATES.template_name%TYPE;
4185: l_id_attribute_value CZ_UI_PAGE_ELEMENTS.element_id%TYPE;
4186: l_element_id CZ_UI_PAGE_ELEMENTS.element_id%TYPE;
4187: l_extend_attr_value VARCHAR2(4000);
4188:
4189: BEGIN
4182: l_seq_nbr NUMBER;
4183: l_template_id NUMBER;
4184: l_template_name CZ_UI_TEMPLATES.template_name%TYPE;
4185: l_id_attribute_value CZ_UI_PAGE_ELEMENTS.element_id%TYPE;
4186: l_element_id CZ_UI_PAGE_ELEMENTS.element_id%TYPE;
4187: l_extend_attr_value VARCHAR2(4000);
4188:
4189: BEGIN
4190:
4203: SELECT template_id,template_name INTO l_template_id,l_template_name FROM CZ_UI_TEMPLATES
4204: WHERE ui_def_id=p_ui_node.ctrl_template_ui_def_id AND
4205: jrad_doc=l_extend_attr_value AND deleted_flag=G_NO_FLAG;
4206:
4207: SELECT NVL(max(seq_nbr),0)+1 INTO l_seq_nbr FROM CZ_UI_PAGE_ELEMENTS
4208: WHERE ui_def_id=p_ui_node.ui_def_id AND
4209: page_id=p_ui_node.page_id AND
4210: parent_element_id=p_ui_node.element_id AND
4211: deleted_flag NOT IN(G_LIMBO_FLAG,G_MARK_TO_DELETE,G_YES_FLAG);
4211: deleted_flag NOT IN(G_LIMBO_FLAG,G_MARK_TO_DELETE,G_YES_FLAG);
4212:
4213: l_element_id := get_element_Id();
4214:
4215: INSERT INTO CZ_UI_PAGE_ELEMENTS
4216: (
4217: UI_DEF_ID
4218: ,PAGE_ID
4219: ,PERSISTENT_NODE_ID
4267:
4268: FUNCTION find_Parent_UI_Element
4269: (p_xml_node xmldom.DOMNode,
4270: p_ui_def_id IN NUMBER,
4271: p_ui_page_id IN NUMBER) RETURN CZ_UI_PAGE_ELEMENTS%ROWTYPE IS
4272:
4273: l_ui_element CZ_UI_PAGE_ELEMENTS%ROWTYPE;
4274:
4275: PROCEDURE get_Parent_XML(p_check_xml_node xmldom.DOMNode) IS
4269: (p_xml_node xmldom.DOMNode,
4270: p_ui_def_id IN NUMBER,
4271: p_ui_page_id IN NUMBER) RETURN CZ_UI_PAGE_ELEMENTS%ROWTYPE IS
4272:
4273: l_ui_element CZ_UI_PAGE_ELEMENTS%ROWTYPE;
4274:
4275: PROCEDURE get_Parent_XML(p_check_xml_node xmldom.DOMNode) IS
4276:
4277: l_parent_xml_node xmldom.DOMNode;
4283:
4284: IF l_id_attr_value IS NOT NULL THEN
4285:
4286: BEGIN
4287: SELECT * INTO l_ui_element FROM CZ_UI_PAGE_ELEMENTS
4288: WHERE ui_def_id=p_ui_def_id AND page_id=p_ui_page_id AND
4289: element_id=l_id_attr_value;
4290: RETURN;
4291: EXCEPTION
4305:
4306: IF l_id_attr_value IS NOT NULL THEN
4307:
4308: BEGIN
4309: SELECT * INTO l_ui_element FROM CZ_UI_PAGE_ELEMENTS
4310: WHERE ui_def_id=p_ui_def_id AND page_id=p_ui_page_id AND
4311: element_id=l_id_attr_value;
4312: RETURN;
4313: EXCEPTION
4806:
4807:
4808: IF p_counter = -1 THEN
4809: SELECT COUNT(element_id) INTO p_counter
4810: FROM CZ_UI_PAGE_ELEMENTS
4811: WHERE ui_def_id=g_UI_Context.ui_def_id
4812: AND page_id=p_ui_page_id AND
4813: deleted_flag NOT IN(G_YES_FLAG,G_MARK_TO_DELETE);
4814: END IF;
4874: --
4875: -- set Attributes for Template
4876: --
4877: PROCEDURE set_Template_Attributes(p_xml_root_node xmldom.DOMNode,
4878: p_ui_node CZ_UI_PAGE_ELEMENTS%ROWTYPE,
4879: p_element_signature_id NUMBER DEFAULT NULL) IS
4880:
4881: l_xml_root_element_node xmldom.DOMElement := xmldom.makeElement(p_xml_root_node);
4882: l_node CZ_UITEMPLS_FOR_PSNODES_V%ROWTYPE;
5078:
5079: PROCEDURE construct_XML_Path(p_xml_node xmldom.DOMNode) IS
5080:
5081: l_parent_node xmldom.DOMNode;
5082: l_element_id CZ_UI_PAGE_ELEMENTS.element_id%TYPE;
5083: l_user_attribute4_value VARCHAR2(32000);
5084: l_node_name VARCHAR2(32000);
5085:
5086: BEGIN
5134:
5135: PROCEDURE construct_XML_Path(p_xml_node xmldom.DOMNode) IS
5136:
5137: l_parent_node xmldom.DOMNode;
5138: l_element_id CZ_UI_PAGE_ELEMENTS.element_id%TYPE;
5139: l_user_attribute4_value VARCHAR2(32000);
5140: l_node_name VARCHAR2(32000);
5141:
5142: BEGIN
6180:
6181: return l_new_xml_node;
6182: END insert_before;
6183:
6184: FUNCTION insert_node(p_ui_node IN CZ_UI_PAGE_ELEMENTS%ROWTYPE,
6185: p_new_xml_node IN xmldom.DOMNode,
6186: p_parent_xml_node IN xmldom.DOMNode)
6187: RETURN xmldom.DOMNode IS
6188:
6243:
6244: BEGIN
6245:
6246: SELECT element_id, ctrl_template_id INTO l_prev_element_id, l_prev_element_template_id
6247: FROM CZ_UI_PAGE_ELEMENTS
6248: WHERE ui_def_id=p_ui_node.ui_def_id AND
6249: page_id = p_ui_node.page_id AND
6250: parent_element_id = p_ui_node.parent_element_id AND
6251: deleted_flag NOT IN (G_YES_FLAG, G_LIMBO_FLAG) AND
6249: page_id = p_ui_node.page_id AND
6250: parent_element_id = p_ui_node.parent_element_id AND
6251: deleted_flag NOT IN (G_YES_FLAG, G_LIMBO_FLAG) AND
6252: seq_nbr = (SELECT max(seq_nbr)
6253: FROM CZ_UI_PAGE_ELEMENTS
6254: WHERE ui_def_id=p_ui_node.ui_def_id AND
6255: page_id = p_ui_node.page_id AND
6256: parent_element_id = p_ui_node.parent_element_id AND
6257: seq_nbr
6269: --DEBUG('asp:Here 1');
6270:
6271: BEGIN
6272: SELECT element_id, ctrl_template_id INTO l_next_element_id, l_next_element_template_id
6273: FROM CZ_UI_PAGE_ELEMENTS
6274: WHERE ui_def_id=p_ui_node.ui_def_id AND
6275: page_id = p_ui_node.page_id AND
6276: parent_element_id = p_ui_node.parent_element_id AND
6277: deleted_flag NOT IN (G_YES_FLAG, G_LIMBO_FLAG, G_MARK_TO_DELETE) AND
6275: page_id = p_ui_node.page_id AND
6276: parent_element_id = p_ui_node.parent_element_id AND
6277: deleted_flag NOT IN (G_YES_FLAG, G_LIMBO_FLAG, G_MARK_TO_DELETE) AND
6278: seq_nbr = ( SELECT min(seq_nbr)
6279: FROM CZ_UI_PAGE_ELEMENTS
6280: WHERE ui_def_id=p_ui_node.ui_def_id AND
6281: page_id = p_ui_node.page_id AND
6282: parent_element_id = p_ui_node.parent_element_id AND
6283: seq_nbr>p_ui_node.seq_nbr AND
6468:
6469: END pluck_XML_node;
6470:
6471:
6472: FUNCTION move_XML_Node(p_ui_node IN CZ_UI_PAGE_ELEMENTS%ROWTYPE,
6473: p_parent_xml_node xmldom.DOMNode)
6474: RETURN xmldom.DOMNode IS
6475:
6476: l_src_page_id NUMBER;
6584: END IF;
6585: END LOOP;
6586: END handle_JRAD_Id;
6587:
6588: FUNCTION create_UIXML_Element_new(p_ui_node IN CZ_UI_PAGE_ELEMENTS%ROWTYPE,
6589: p_parent_xml_node xmldom.DOMNode)
6590: RETURN xmldom.DOMNode IS
6591:
6592: l_node CZ_UITEMPLS_FOR_PSNODES_V%ROWTYPE;
6660: l_template_is_used_by_ref := is_Used_By_Reference(l_node.detailed_type_id,p_ui_node.ctrl_template_id);
6661:
6662: BEGIN
6663: SELECT element_id, ctrl_template_id INTO l_prev_element_id, l_prev_element_template_id
6664: FROM CZ_UI_PAGE_ELEMENTS
6665: WHERE ui_def_id=p_ui_node.ui_def_id AND
6666: page_id = p_ui_node.page_id AND
6667: parent_element_id = p_ui_node.parent_element_id AND
6668: deleted_flag NOT IN (G_YES_FLAG, G_LIMBO_FLAG) AND
6669: --jonatara:bug fix7307460
6670: NOT (element_type = G_UI_DRILLDOWN_NODE_TYPE AND ctrl_template_id IS NULL) AND
6671: NOT (element_signature_id IS NULL AND ctrl_template_id IS NULL ) AND
6672: seq_nbr = (SELECT max(seq_nbr)
6673: FROM CZ_UI_PAGE_ELEMENTS
6674: WHERE ui_def_id=p_ui_node.ui_def_id AND
6675: page_id = p_ui_node.page_id AND
6676: parent_element_id = p_ui_node.parent_element_id AND
6677: seq_nbr
6688:
6689: BEGIN
6690:
6691: SELECT element_id, ctrl_template_id INTO l_next_element_id, l_next_element_template_id
6692: FROM CZ_UI_PAGE_ELEMENTS
6693: WHERE ui_def_id=p_ui_node.ui_def_id AND
6694: page_id = p_ui_node.page_id AND
6695: parent_element_id = p_ui_node.parent_element_id AND
6696: deleted_flag NOT IN (G_YES_FLAG, G_LIMBO_FLAG, G_MARK_TO_DELETE) AND
6697: --jonatara:bug fix7307460
6698: NOT (element_type = G_UI_DRILLDOWN_NODE_TYPE AND ctrl_template_id IS NULL) AND
6699: NOT (element_signature_id IS NULL AND ctrl_template_id IS NULL) AND
6700: seq_nbr = ( SELECT min(seq_nbr)
6701: FROM CZ_UI_PAGE_ELEMENTS
6702: WHERE ui_def_id=p_ui_node.ui_def_id AND
6703: page_id = p_ui_node.page_id AND
6704: parent_element_id = p_ui_node.parent_element_id AND
6705: seq_nbr>p_ui_node.seq_nbr AND
7170:
7171: --
7172: -- create new XML JRAD element
7173: --
7174: FUNCTION create_UIXML_Element(p_ui_node IN CZ_UI_PAGE_ELEMENTS%ROWTYPE,
7175: p_parent_xml_node xmldom.DOMNode)
7176: RETURN xmldom.DOMNode IS
7177:
7178: l_node CZ_UITEMPLS_FOR_PSNODES_V%ROWTYPE;
7236: l_template_is_used_by_ref := is_Used_By_Reference(l_node.detailed_type_id,p_ui_node.ctrl_template_id);
7237:
7238: BEGIN
7239: SELECT element_id INTO l_prev_element_id
7240: FROM CZ_UI_PAGE_ELEMENTS
7241: WHERE ui_def_id=p_ui_node.ui_def_id AND
7242: parent_persistent_node_id=p_ui_node.parent_persistent_node_id AND
7243: seq_nbr=p_ui_node.seq_nbr-1 AND
7244: deleted_flag<>G_YES_FLAG;
7723:
7724: --
7725: -- add new XML region
7726: --
7727: FUNCTION create_UIXML_Region(p_ui_node IN CZ_UI_PAGE_ELEMENTS%ROWTYPE,
7728: p_parent_xml_node xmldom.DOMNode)
7729: RETURN xmldom.DOMNode IS
7730:
7731: l_subtree_doc xmldom.DOMDocument;
7798:
7799: --
7800: -- replace XML JRAD element
7801: --
7802: FUNCTION replace_UIXML_Element(p_ui_node IN CZ_UI_PAGE_ELEMENTS%ROWTYPE,
7803: p_parent_xml_node xmldom.DOMNode,
7804: p_xml_node_to_replace xmldom.DOMNode)
7805: RETURN xmldom.DOMNode IS
7806:
8133: G_USER_ATTRIBUTE1_NAME);
8134:
8135: IF l_current_model_path IS NOT NULL THEN
8136:
8137: SELECT model_ref_expl_id INTO l_ui_node_expl_id FROM CZ_UI_PAGE_ELEMENTS
8138: WHERE ui_def_id=g_UI_Context.ui_def_id AND page_id=p_ui_page_id AND element_id=p_ui_element_id;
8139:
8140: l_new_model_path := get_Runtime_Relative_Path(p_model_id => g_UI_Context.devl_project_id,
8141: p_persistent_node_id => p_persistent_node_id,
8221: l_node := xmldom.item(l_nodeslist, i);
8222: l_element_id := get_Attribute_Value(l_node, G_ID_ATTRIBUTE);
8223: IF l_element_id IS NOT NULL THEN
8224: BEGIN
8225: SELECT persistent_node_id INTO l_persistent_node_id FROM CZ_UI_PAGE_ELEMENTS
8226: WHERE ui_def_id=g_UI_Context.ui_def_id AND
8227: page_id=p_page_id AND
8228: element_id=l_element_id;
8229:
8648: p_create_empty_ui IN VARCHAR2 DEFAULT NULL)
8649: RETURN CZ_UI_DEFS%ROWTYPE IS
8650:
8651: l_node CZ_UITEMPLS_FOR_PSNODES_V%ROWTYPE;
8652: l_page_ui_node CZ_UI_PAGE_ELEMENTS%ROWTYPE;
8653: l_page_set_id CZ_UI_PAGE_SETS.page_set_id%TYPE;
8654: l_page_ref_id CZ_UI_PAGE_REFS.page_ref_id%TYPE;
8655: l_page_set_type CZ_UI_PAGE_SETS.page_set_type%TYPE;
8656: l_master_template_id NUMBER;
8956: SELECT persistent_node_id INTO l_page_persistent_node_id
8957: FROM CZ_UI_PAGES
8958: WHERE page_id=p_page_id AND ui_def_id=g_UI_Context.ui_def_id;
8959:
8960: FOR i IN (SELECT element_id FROM CZ_UI_PAGE_ELEMENTS
8961: WHERE ui_def_id=g_UI_Context.ui_def_id AND
8962: page_id IN(SELECT page_id FROM CZ_UI_PAGES
8963: WHERE ui_def_id=g_UI_Context.ui_def_id AND
8964: persistent_node_id=l_page_persistent_node_id AND deleted_flag NOT IN(G_YES_FLAG,G_MARK_TO_DELETE)) AND
8981: --
8982: -- create new CX button
8983: --
8984: PROCEDURE add_CX_Button(p_node IN CZ_UITEMPLS_FOR_PSNODES_V%ROWTYPE,
8985: p_ui_node IN CZ_UI_PAGE_ELEMENTS%ROWTYPE) IS
8986:
8987: l_element_id CZ_UI_PAGE_ELEMENTS.element_id%TYPE;
8988: l_parent_element_id CZ_UI_PAGE_ELEMENTS.parent_element_id%TYPE;
8989: l_ui_action_id CZ_UI_ACTIONS.ui_action_id%TYPE;
8983: --
8984: PROCEDURE add_CX_Button(p_node IN CZ_UITEMPLS_FOR_PSNODES_V%ROWTYPE,
8985: p_ui_node IN CZ_UI_PAGE_ELEMENTS%ROWTYPE) IS
8986:
8987: l_element_id CZ_UI_PAGE_ELEMENTS.element_id%TYPE;
8988: l_parent_element_id CZ_UI_PAGE_ELEMENTS.parent_element_id%TYPE;
8989: l_ui_action_id CZ_UI_ACTIONS.ui_action_id%TYPE;
8990: l_name CZ_UI_PAGE_ELEMENTS.name%TYPE;
8991: l_page_path VARCHAR2(32000);
8984: PROCEDURE add_CX_Button(p_node IN CZ_UITEMPLS_FOR_PSNODES_V%ROWTYPE,
8985: p_ui_node IN CZ_UI_PAGE_ELEMENTS%ROWTYPE) IS
8986:
8987: l_element_id CZ_UI_PAGE_ELEMENTS.element_id%TYPE;
8988: l_parent_element_id CZ_UI_PAGE_ELEMENTS.parent_element_id%TYPE;
8989: l_ui_action_id CZ_UI_ACTIONS.ui_action_id%TYPE;
8990: l_name CZ_UI_PAGE_ELEMENTS.name%TYPE;
8991: l_page_path VARCHAR2(32000);
8992: l_ui_intl_text_id INTEGER;
8986:
8987: l_element_id CZ_UI_PAGE_ELEMENTS.element_id%TYPE;
8988: l_parent_element_id CZ_UI_PAGE_ELEMENTS.parent_element_id%TYPE;
8989: l_ui_action_id CZ_UI_ACTIONS.ui_action_id%TYPE;
8990: l_name CZ_UI_PAGE_ELEMENTS.name%TYPE;
8991: l_page_path VARCHAR2(32000);
8992: l_ui_intl_text_id INTEGER;
8993: l_counter INTEGER;
8994: l_new_node BOOLEAN := FALSE;
9062: l_parent_element_id := p_ui_node.parent_element_id;
9063: END IF;
9064: l_new_node := TRUE;
9065:
9066: SELECT COUNT(element_id)+1 INTO l_counter FROM CZ_UI_PAGE_ELEMENTS
9067: WHERE ui_def_id=g_UI_Context.ui_def_id AND
9068: page_id=p_ui_node.page_id AND
9069: ctrl_template_id=G_DRILLDOWN_BUTTON_TEMPLATE_ID AND
9070: deleted_flag NOT IN(G_YES_FLAG,G_MARK_TO_DELETE);
9070: deleted_flag NOT IN(G_YES_FLAG,G_MARK_TO_DELETE);
9071:
9072: l_name := G_DRILLDOWN_TEMPLATE_NAME||' - '||TO_CHAR(l_counter);
9073:
9074: INSERT INTO CZ_UI_PAGE_ELEMENTS
9075: (ui_def_id,
9076: persistent_node_id,
9077: parent_persistent_node_id,
9078: region_persistent_node_id,
9238: END IF;
9239:
9240: l_new_node := TRUE;
9241:
9242: INSERT INTO CZ_UI_PAGE_ELEMENTS
9243: (ui_def_id,
9244: persistent_node_id,
9245: parent_persistent_node_id,
9246: region_persistent_node_id,
9346: SELECT persistent_node_id INTO l_persistent_id FROM CZ_PS_NODES
9347: WHERE devl_project_id=l_ref_model_id AND ps_node_id=i.component_id;
9348:
9349: -- find model_ref_expl_id and persistent_node_id of pagebase
9350: SELECT model_ref_expl_id, persistent_node_id INTO l_pb_model_ref_expl_id, l_pb_persistent_node_id FROM CZ_UI_PAGE_ELEMENTS
9351: WHERE ui_def_id=p_ui_node.ui_def_id AND page_id=p_ui_node.page_id AND
9352: element_id=p_ui_node.parent_element_id;
9353:
9354: -- save runtime relative path of CX button in associative array g_ref_cx_paths_tbl ( UI element_id <-> runtime relative path )
9377: END add_CX_Button;
9378:
9379: --
9380: -- handle CX for those nodes which have no corresponding
9381: -- records in table CZ_UI_PAGE_ELEMENTS
9382: --
9383: PROCEDURE handle_CXs_For_nonUINodes IS
9384:
9385: l_ui_intl_text_id CZ_INTL_TEXTS.intl_text_id%TYPE;
9382: --
9383: PROCEDURE handle_CXs_For_nonUINodes IS
9384:
9385: l_ui_intl_text_id CZ_INTL_TEXTS.intl_text_id%TYPE;
9386: l_element_id CZ_UI_PAGE_ELEMENTS.element_id%TYPE;
9387: l_parent_element_id CZ_UI_PAGE_ELEMENTS.element_id%TYPE;
9388: l_ui_action_id CZ_UI_ACTIONS.ui_action_id%TYPE;
9389:
9390: BEGIN
9383: PROCEDURE handle_CXs_For_nonUINodes IS
9384:
9385: l_ui_intl_text_id CZ_INTL_TEXTS.intl_text_id%TYPE;
9386: l_element_id CZ_UI_PAGE_ELEMENTS.element_id%TYPE;
9387: l_parent_element_id CZ_UI_PAGE_ELEMENTS.element_id%TYPE;
9388: l_ui_action_id CZ_UI_ACTIONS.ui_action_id%TYPE;
9389:
9390: BEGIN
9391:
9401: disabled_flag=G_NO_FLAG AND
9402: deleted_flag=G_NO_FLAG))
9403: LOOP
9404: FOR parent_ui_node IN(SELECT *
9405: FROM CZ_UI_PAGE_ELEMENTS
9406: WHERE ui_def_id=g_UI_Context.ui_def_id AND
9407: persistent_node_id=option_node.parent_persistent_node_id AND
9408: deleted_flag NOT IN(G_YES_FLAG, G_MARK_TO_DELETE, G_LIMBO_FLAG))
9409: LOOP
9455: ELSE
9456: l_parent_element_id := parent_ui_node.parent_element_id;
9457: END IF;
9458:
9459: INSERT INTO CZ_UI_PAGE_ELEMENTS
9460: (ui_def_id,
9461: persistent_node_id,
9462: parent_persistent_node_id,
9463: region_persistent_node_id,
9559:
9560: END handle_CXs_For_nonUINodes;
9561:
9562:
9563: FUNCTION disabled_for_refresh(p_page_element IN CZ_UI_PAGE_ELEMENTS%ROWTYPE) RETURN BOOLEAN
9564: IS
9565: l_dummy VARCHAR2(1);
9566: BEGIN
9567:
9567:
9568: SELECT '1' INTO l_dummy
9569: FROM DUAL
9570: WHERE '1' IN (SELECT suppress_refresh_flag
9571: FROM cz_ui_page_elements
9572: START WITH ui_def_Id = p_page_element.ui_def_id
9573: AND page_id = p_page_element.page_id
9574: AND element_id = p_page_element.element_id
9575: CONNECT BY PRIOR parent_element_id IS NOT NULL
9584: END disabled_for_refresh;
9585:
9586: --
9587: -- handle CX for those nodes which have no corresponding
9588: -- records in table CZ_UI_PAGE_ELEMENTS
9589: --
9590: PROCEDURE handle_CXs IS
9591:
9592: l_ui_intl_text_id CZ_INTL_TEXTS.intl_text_id%TYPE;
9589: --
9590: PROCEDURE handle_CXs IS
9591:
9592: l_ui_intl_text_id CZ_INTL_TEXTS.intl_text_id%TYPE;
9593: l_element_id CZ_UI_PAGE_ELEMENTS.element_id%TYPE;
9594: l_parent_element_id CZ_UI_PAGE_ELEMENTS.element_id%TYPE;
9595: l_ui_action_id CZ_UI_ACTIONS.ui_action_id%TYPE;
9596: l_ps_node CZ_UITEMPLS_FOR_PSNODES_V%ROWTYPE;
9597: l_invalid_flag VARCHAR2(1);
9590: PROCEDURE handle_CXs IS
9591:
9592: l_ui_intl_text_id CZ_INTL_TEXTS.intl_text_id%TYPE;
9593: l_element_id CZ_UI_PAGE_ELEMENTS.element_id%TYPE;
9594: l_parent_element_id CZ_UI_PAGE_ELEMENTS.element_id%TYPE;
9595: l_ui_action_id CZ_UI_ACTIONS.ui_action_id%TYPE;
9596: l_ps_node CZ_UITEMPLS_FOR_PSNODES_V%ROWTYPE;
9597: l_invalid_flag VARCHAR2(1);
9598:
9599: BEGIN
9600:
9601:
9602: FOR i in (SELECT DISTINCT page_id
9603: FROM cz_ui_page_elements
9604: WHERE ui_def_Id = g_UI_Context.ui_def_id
9605: AND element_type = G_UI_CX_BUTTON_NODE_TYPE
9606: AND deleted_flag = G_NO_FLAG)
9607: LOOP
9625: LOOP
9626: BEGIN
9627:
9628: SELECT e.element_id INTO l_element_id
9629: FROM CZ_UI_PAGE_ELEMENTS e
9630: WHERE ui_def_id = g_UI_Context.ui_def_id AND
9631: persistent_node_id = i.persistent_node_id AND
9632: element_type = G_UI_CX_BUTTON_NODE_TYPE AND
9633: deleted_flag NOT IN (G_YES_FLAG, G_MARK_TO_DELETE) AND
9640: EXCEPTION
9641: WHEN NO_DATA_FOUND THEN
9642: -- No button for the action; Create one
9643: FOR j in (SELECT *
9644: FROM CZ_UI_PAGE_ELEMENTS e
9645: WHERE ui_def_id = g_UI_Context.ui_def_id AND
9646: persistent_node_id = i.persistent_node_id AND
9647: deleted_flag NOT IN (G_YES_FLAG, G_MARK_TO_DELETE))
9648: LOOP
9659: --
9660: -- create single UI element
9661: --
9662: FUNCTION create_UI_Element(p_node IN CZ_UITEMPLS_FOR_PSNODES_V%ROWTYPE,
9663: p_parent_ui_node IN CZ_UI_PAGE_ELEMENTS%ROWTYPE,
9664: p_insert_index IN NUMBER DEFAULT -1)
9665: RETURN CZ_UI_PAGE_ELEMENTS%ROWTYPE IS
9666:
9667: l_ui_node CZ_UI_PAGE_ELEMENTS%ROWTYPE;
9661: --
9662: FUNCTION create_UI_Element(p_node IN CZ_UITEMPLS_FOR_PSNODES_V%ROWTYPE,
9663: p_parent_ui_node IN CZ_UI_PAGE_ELEMENTS%ROWTYPE,
9664: p_insert_index IN NUMBER DEFAULT -1)
9665: RETURN CZ_UI_PAGE_ELEMENTS%ROWTYPE IS
9666:
9667: l_ui_node CZ_UI_PAGE_ELEMENTS%ROWTYPE;
9668: l_node_exists_in_ui VARCHAR2(1);
9669: l_counter NUMBER;
9663: p_parent_ui_node IN CZ_UI_PAGE_ELEMENTS%ROWTYPE,
9664: p_insert_index IN NUMBER DEFAULT -1)
9665: RETURN CZ_UI_PAGE_ELEMENTS%ROWTYPE IS
9666:
9667: l_ui_node CZ_UI_PAGE_ELEMENTS%ROWTYPE;
9668: l_node_exists_in_ui VARCHAR2(1);
9669: l_counter NUMBER;
9670: l_parent_seq_nbr NUMBER;
9671: l_max_prev_seq_nbr NUMBER;
9677: END IF;
9678:
9679: BEGIN
9680: SELECT G_YES_FLAG INTO l_node_exists_in_ui FROM dual
9681: WHERE EXISTS(SELECT NULL FROM CZ_UI_PAGE_ELEMENTS
9682: WHERE ui_def_id=g_UI_Context.ui_def_id AND
9683: page_id=p_parent_ui_node.page_id AND
9684: parent_element_id=p_parent_ui_node.element_id AND
9685: persistent_node_id=p_node.persistent_node_id AND
9701: IF p_insert_index > 0 THEN
9702: l_max_prev_seq_nbr := p_insert_index-1;
9703: l_ui_node.seq_nbr := p_insert_index;
9704: ELSE
9705: SELECT NVL(MAX(seq_nbr),0) INTO l_max_prev_seq_nbr FROM CZ_UI_PAGE_ELEMENTS
9706: START WITH ui_def_id=g_UI_Context.ui_def_id AND
9707: page_id=p_parent_ui_node.page_id AND
9708: element_id=p_parent_ui_node.element_id AND
9709: deleted_flag NOT IN(G_YES_FLAG,G_MARK_TO_DELETE)
9715:
9716: l_ui_node.seq_nbr := l_max_prev_seq_nbr + 1;
9717: END IF;
9718:
9719: UPDATE CZ_UI_PAGE_ELEMENTS
9720: SET seq_nbr=seq_nbr+1
9721: WHERE ui_def_id=g_UI_Context.ui_def_id AND
9722: page_id=p_parent_ui_node.page_id AND
9723: seq_nbr>l_max_prev_seq_nbr AND
9762: p_ps_node_type => p_node.ps_node_type);
9763: l_ui_node.element_signature_id := p_node.root_element_signature_id;
9764: l_ui_node.deleted_flag := G_MARK_TO_ADD;
9765:
9766: SELECT COUNT(element_id)+1 INTO l_counter FROM CZ_UI_PAGE_ELEMENTS
9767: WHERE ui_def_id=g_UI_Context.ui_def_id AND
9768: page_id=l_ui_node.page_id AND
9769: ctrl_template_id=l_ui_node.ctrl_template_id AND
9770: deleted_flag NOT IN(G_YES_FLAG,G_MARK_TO_DELETE);
9772: l_ui_node.name := p_node.template_name||' - '||TO_CHAR(l_counter);
9773:
9774: --DEBUG('asp:Inserting ' || l_ui_node.element_id || ' at seq ' || l_ui_node.seq_nbr);
9775:
9776: INSERT INTO CZ_UI_PAGE_ELEMENTS
9777: (ui_def_id,
9778: persistent_node_id,
9779: parent_persistent_node_id,
9780: region_persistent_node_id,
9823:
9824: --
9825: -- add Instance Management Controls
9826: --
9827: PROCEDURE add_Instance_Controls(p_ui_node IN CZ_UI_PAGE_ELEMENTS%ROWTYPE,
9828: p_parent_ui_node IN CZ_UI_PAGE_ELEMENTS%ROWTYPE,
9829: p_node IN CZ_UITEMPLS_FOR_PSNODES_V%ROWTYPE) IS
9830:
9831: l_element_id CZ_UI_PAGE_ELEMENTS.element_id%TYPE;
9824: --
9825: -- add Instance Management Controls
9826: --
9827: PROCEDURE add_Instance_Controls(p_ui_node IN CZ_UI_PAGE_ELEMENTS%ROWTYPE,
9828: p_parent_ui_node IN CZ_UI_PAGE_ELEMENTS%ROWTYPE,
9829: p_node IN CZ_UITEMPLS_FOR_PSNODES_V%ROWTYPE) IS
9830:
9831: l_element_id CZ_UI_PAGE_ELEMENTS.element_id%TYPE;
9832: l_element_type CZ_UI_PAGE_ELEMENTS.element_type%TYPE;
9827: PROCEDURE add_Instance_Controls(p_ui_node IN CZ_UI_PAGE_ELEMENTS%ROWTYPE,
9828: p_parent_ui_node IN CZ_UI_PAGE_ELEMENTS%ROWTYPE,
9829: p_node IN CZ_UITEMPLS_FOR_PSNODES_V%ROWTYPE) IS
9830:
9831: l_element_id CZ_UI_PAGE_ELEMENTS.element_id%TYPE;
9832: l_element_type CZ_UI_PAGE_ELEMENTS.element_type%TYPE;
9833: l_ui_node_name CZ_UI_PAGE_ELEMENTS.name%TYPE;
9834: l_parent_seq_nbr NUMBER;
9835: l_seq_nbr NUMBER;
9828: p_parent_ui_node IN CZ_UI_PAGE_ELEMENTS%ROWTYPE,
9829: p_node IN CZ_UITEMPLS_FOR_PSNODES_V%ROWTYPE) IS
9830:
9831: l_element_id CZ_UI_PAGE_ELEMENTS.element_id%TYPE;
9832: l_element_type CZ_UI_PAGE_ELEMENTS.element_type%TYPE;
9833: l_ui_node_name CZ_UI_PAGE_ELEMENTS.name%TYPE;
9834: l_parent_seq_nbr NUMBER;
9835: l_seq_nbr NUMBER;
9836: l_counter NUMBER;
9829: p_node IN CZ_UITEMPLS_FOR_PSNODES_V%ROWTYPE) IS
9830:
9831: l_element_id CZ_UI_PAGE_ELEMENTS.element_id%TYPE;
9832: l_element_type CZ_UI_PAGE_ELEMENTS.element_type%TYPE;
9833: l_ui_node_name CZ_UI_PAGE_ELEMENTS.name%TYPE;
9834: l_parent_seq_nbr NUMBER;
9835: l_seq_nbr NUMBER;
9836: l_counter NUMBER;
9837: l_max_prev_seq_nbr NUMBER;
9841: IF p_parent_ui_node.suppress_refresh_flag=G_YES_FLAG THEN
9842: RETURN;
9843: END IF;
9844:
9845: SELECT NVL(MAX(seq_nbr),0) INTO l_max_prev_seq_nbr FROM CZ_UI_PAGE_ELEMENTS
9846: START WITH ui_def_id=g_UI_Context.ui_def_id AND
9847: page_id=p_parent_ui_node.page_id AND
9848: element_id=p_parent_ui_node.element_id AND
9849: deleted_flag NOT IN(G_YES_FLAG,G_MARK_TO_DELETE)
9854: deleted_flag NOT IN(G_YES_FLAG,G_MARK_TO_DELETE);
9855:
9856: l_seq_nbr := l_max_prev_seq_nbr + 1;
9857:
9858: UPDATE CZ_UI_PAGE_ELEMENTS
9859: SET seq_nbr=seq_nbr+1
9860: WHERE ui_def_id=g_UI_Context.ui_def_id AND
9861: page_id=p_parent_ui_node.page_id AND
9862: seq_nbr>l_max_prev_seq_nbr AND
9875: l_ui_node_name := get_UI_Node_Name(p_page_id => p_parent_ui_node.page_id,
9876: p_template_id => p_node.template_id,
9877: p_template_name => p_node.template_name);
9878:
9879: INSERT INTO CZ_UI_PAGE_ELEMENTS
9880: (ui_def_id,
9881: persistent_node_id,
9882: parent_persistent_node_id,
9883: region_persistent_node_id,
9914: G_MARK_DO_NOT_REFRESH);
9915:
9916: -- delete drilldown associated with the same persistent_node_id
9917: --
9918: UPDATE CZ_UI_PAGE_ELEMENTS
9919: SET deleted_flag=G_MARK_TO_DELETE
9920: WHERE ui_def_id = p_parent_ui_node.ui_def_id AND
9921: persistent_node_id=p_ui_node.persistent_node_id AND
9922: element_type=G_UI_PAGEDRILLDOWN_NODE_TYPE AND
9928:
9929: --
9930: -- create Drilldown button
9931: --
9932: PROCEDURE create_Drilldown_Button(p_parent_ui_node IN CZ_UI_PAGE_ELEMENTS%ROWTYPE,
9933: p_ui_node IN CZ_UI_PAGE_ELEMENTS%ROWTYPE,
9934: p_page_set_id IN NUMBER) IS
9935:
9936: l_element_id CZ_UI_PAGE_ELEMENTS.element_id%TYPE;
9929: --
9930: -- create Drilldown button
9931: --
9932: PROCEDURE create_Drilldown_Button(p_parent_ui_node IN CZ_UI_PAGE_ELEMENTS%ROWTYPE,
9933: p_ui_node IN CZ_UI_PAGE_ELEMENTS%ROWTYPE,
9934: p_page_set_id IN NUMBER) IS
9935:
9936: l_element_id CZ_UI_PAGE_ELEMENTS.element_id%TYPE;
9937: l_ui_action_id CZ_UI_ACTIONS.ui_action_id%TYPE;
9932: PROCEDURE create_Drilldown_Button(p_parent_ui_node IN CZ_UI_PAGE_ELEMENTS%ROWTYPE,
9933: p_ui_node IN CZ_UI_PAGE_ELEMENTS%ROWTYPE,
9934: p_page_set_id IN NUMBER) IS
9935:
9936: l_element_id CZ_UI_PAGE_ELEMENTS.element_id%TYPE;
9937: l_ui_action_id CZ_UI_ACTIONS.ui_action_id%TYPE;
9938: l_seq_nbr CZ_UI_PAGE_ELEMENTS.seq_nbr%TYPE;
9939: l_ui_node_name CZ_UI_PAGE_ELEMENTS.name%TYPE;
9940:
9934: p_page_set_id IN NUMBER) IS
9935:
9936: l_element_id CZ_UI_PAGE_ELEMENTS.element_id%TYPE;
9937: l_ui_action_id CZ_UI_ACTIONS.ui_action_id%TYPE;
9938: l_seq_nbr CZ_UI_PAGE_ELEMENTS.seq_nbr%TYPE;
9939: l_ui_node_name CZ_UI_PAGE_ELEMENTS.name%TYPE;
9940:
9941: BEGIN
9942:
9935:
9936: l_element_id CZ_UI_PAGE_ELEMENTS.element_id%TYPE;
9937: l_ui_action_id CZ_UI_ACTIONS.ui_action_id%TYPE;
9938: l_seq_nbr CZ_UI_PAGE_ELEMENTS.seq_nbr%TYPE;
9939: l_ui_node_name CZ_UI_PAGE_ELEMENTS.name%TYPE;
9940:
9941: BEGIN
9942:
9943: IF p_parent_ui_node.suppress_refresh_flag=G_YES_FLAG THEN
9959: ELSE
9960: l_ui_node_name := 'Drilldown Button - '||TO_CHAR(l_seq_nbr);
9961: END IF;
9962:
9963: INSERT INTO CZ_UI_PAGE_ELEMENTS
9964: (ui_def_id,
9965: persistent_node_id,
9966: parent_persistent_node_id,
9967: region_persistent_node_id,
10075: p_parent_element_id IN VARCHAR2,
10076: p_pagebase_persistent_node_id IN NUMBER,
10077: p_check_child_bom_nodes IN VARCHAR2 DEFAULT NULL) IS
10078:
10079: l_bom_element_id CZ_UI_PAGE_ELEMENTS.element_id%TYPE;
10080: l_ui_node_name CZ_UI_PAGE_ELEMENTS.name%TYPE;
10081: BEGIN
10082:
10083: IF p_check_child_bom_nodes IS NULL OR p_check_child_bom_nodes=G_YES_FLAG THEN
10076: p_pagebase_persistent_node_id IN NUMBER,
10077: p_check_child_bom_nodes IN VARCHAR2 DEFAULT NULL) IS
10078:
10079: l_bom_element_id CZ_UI_PAGE_ELEMENTS.element_id%TYPE;
10080: l_ui_node_name CZ_UI_PAGE_ELEMENTS.name%TYPE;
10081: BEGIN
10082:
10083: IF p_check_child_bom_nodes IS NULL OR p_check_child_bom_nodes=G_YES_FLAG THEN
10084: IF NOT(contains_BOM_Nodes(p_node.ps_node_id)) THEN
10093: --DEBUG('asp:Inserting BOM Node ' || l_bom_element_id|| ' at seq ' || 1);
10094: --
10095: -- shift all UI elements down , because BOM table will have seq_nbr=1
10096: --
10097: UPDATE CZ_UI_PAGE_ELEMENTS
10098: SET seq_nbr=seq_nbr+1
10099: WHERE ui_def_id=g_UI_Context.ui_def_id AND page_id=p_page_id AND
10100: deleted_flag NOT IN(G_YES_FLAG, G_LIMBO_FLAG);
10101:
10099: WHERE ui_def_id=g_UI_Context.ui_def_id AND page_id=p_page_id AND
10100: deleted_flag NOT IN(G_YES_FLAG, G_LIMBO_FLAG);
10101:
10102:
10103: INSERT INTO CZ_UI_PAGE_ELEMENTS
10104: (ui_def_id,
10105: persistent_node_id,
10106: parent_persistent_node_id,
10107: region_persistent_node_id,
10304: x_page_set_id OUT NOCOPY NUMBER,
10305: x_page_set_type OUT NOCOPY NUMBER,
10306: x_page_ref_id OUT NOCOPY NUMBER,
10307: p_parent_page_id IN NUMBER DEFAULT NULL)
10308: RETURN CZ_UI_PAGE_ELEMENTS%ROWTYPE IS
10309:
10310: l_page_node CZ_UI_PAGES%ROWTYPE;
10311: l_bom_element_id CZ_UI_PAGE_ELEMENTS.element_id%TYPE;
10312: l_page_ui_node CZ_UI_PAGE_ELEMENTS%ROWTYPE;
10307: p_parent_page_id IN NUMBER DEFAULT NULL)
10308: RETURN CZ_UI_PAGE_ELEMENTS%ROWTYPE IS
10309:
10310: l_page_node CZ_UI_PAGES%ROWTYPE;
10311: l_bom_element_id CZ_UI_PAGE_ELEMENTS.element_id%TYPE;
10312: l_page_ui_node CZ_UI_PAGE_ELEMENTS%ROWTYPE;
10313: l_page_ref_id CZ_UI_PAGE_REFS.page_ref_id%TYPE;
10314: l_parent_page_ref_id CZ_UI_PAGE_REFS.page_ref_id%TYPE;
10315: l_seq_nbr CZ_UI_PAGE_REFS.seq_nbr%TYPE;
10308: RETURN CZ_UI_PAGE_ELEMENTS%ROWTYPE IS
10309:
10310: l_page_node CZ_UI_PAGES%ROWTYPE;
10311: l_bom_element_id CZ_UI_PAGE_ELEMENTS.element_id%TYPE;
10312: l_page_ui_node CZ_UI_PAGE_ELEMENTS%ROWTYPE;
10313: l_page_ref_id CZ_UI_PAGE_REFS.page_ref_id%TYPE;
10314: l_parent_page_ref_id CZ_UI_PAGE_REFS.page_ref_id%TYPE;
10315: l_seq_nbr CZ_UI_PAGE_REFS.seq_nbr%TYPE;
10316: l_node_depth CZ_UI_PAGE_REFS.node_depth%TYPE;
10317: l_page_set_id CZ_UI_PAGE_SETS.page_set_id%TYPE;
10318: l_last_page_id CZ_UI_PAGES.page_id%TYPE;
10319: l_parent_page_id CZ_UI_PAGES.page_id%TYPE;
10320: l_page_set_type CZ_UI_PAGE_SETS.page_set_type%TYPE;
10321: l_ui_node_name CZ_UI_PAGE_ELEMENTS.name%TYPE;
10322: l_ref_pagebase_path CZ_UI_PAGE_REFS.target_path%TYPE;
10323: l_parent_ui_page_node CZ_UI_PAGES%ROWTYPE;
10324: l_ui_page_set_node CZ_UI_PAGE_SETS%ROWTYPE;
10325: l_parent_page_persistent_id NUMBER;
10510:
10511: g_ELEMENT_COUNTER := 0;
10512: l_page_ui_node.name := 'Page Region - 1';
10513:
10514: INSERT INTO CZ_UI_PAGE_ELEMENTS
10515: (ui_def_id,
10516: persistent_node_id,
10517: parent_persistent_node_id,
10518: region_persistent_node_id,
10569: END IF;
10570:
10571: IF NVL(g_UI_Context.suppress_refresh_flag,G_NO_FLAG)=G_NO_FLAG THEN
10572: FOR i IN(SELECT *
10573: FROM CZ_UI_PAGE_ELEMENTS
10574: WHERE ui_def_id=l_page_ui_node.ui_def_id AND
10575: page_id=l_last_page_id AND
10576: persistent_node_id=l_page_ui_node.parent_persistent_node_id AND
10577: element_type IN(G_UI_PAGE_NODE_TYPE,G_UI_REGION_NODE_TYPE) AND
10706: --
10707: -- create nested Region
10708: --
10709: FUNCTION create_UI_Region(p_node IN CZ_UITEMPLS_FOR_PSNODES_V%ROWTYPE,
10710: p_parent_ui_node IN CZ_UI_PAGE_ELEMENTS%ROWTYPE,
10711: p_insert_index IN NUMBER DEFAULT -1)
10712: RETURN CZ_UI_PAGE_ELEMENTS%ROWTYPE IS
10713:
10714: l_ui_node CZ_UI_PAGE_ELEMENTS%ROWTYPE;
10708: --
10709: FUNCTION create_UI_Region(p_node IN CZ_UITEMPLS_FOR_PSNODES_V%ROWTYPE,
10710: p_parent_ui_node IN CZ_UI_PAGE_ELEMENTS%ROWTYPE,
10711: p_insert_index IN NUMBER DEFAULT -1)
10712: RETURN CZ_UI_PAGE_ELEMENTS%ROWTYPE IS
10713:
10714: l_ui_node CZ_UI_PAGE_ELEMENTS%ROWTYPE;
10715: l_bom_element_id CZ_UI_PAGE_ELEMENTS.element_id%TYPE;
10716: l_ui_node_name CZ_UI_PAGE_ELEMENTS.name%TYPE;
10710: p_parent_ui_node IN CZ_UI_PAGE_ELEMENTS%ROWTYPE,
10711: p_insert_index IN NUMBER DEFAULT -1)
10712: RETURN CZ_UI_PAGE_ELEMENTS%ROWTYPE IS
10713:
10714: l_ui_node CZ_UI_PAGE_ELEMENTS%ROWTYPE;
10715: l_bom_element_id CZ_UI_PAGE_ELEMENTS.element_id%TYPE;
10716: l_ui_node_name CZ_UI_PAGE_ELEMENTS.name%TYPE;
10717: l_counter NUMBER;
10718: l_parent_seq_nbr NUMBER;
10711: p_insert_index IN NUMBER DEFAULT -1)
10712: RETURN CZ_UI_PAGE_ELEMENTS%ROWTYPE IS
10713:
10714: l_ui_node CZ_UI_PAGE_ELEMENTS%ROWTYPE;
10715: l_bom_element_id CZ_UI_PAGE_ELEMENTS.element_id%TYPE;
10716: l_ui_node_name CZ_UI_PAGE_ELEMENTS.name%TYPE;
10717: l_counter NUMBER;
10718: l_parent_seq_nbr NUMBER;
10719: l_last_seq_nbr NUMBER;
10712: RETURN CZ_UI_PAGE_ELEMENTS%ROWTYPE IS
10713:
10714: l_ui_node CZ_UI_PAGE_ELEMENTS%ROWTYPE;
10715: l_bom_element_id CZ_UI_PAGE_ELEMENTS.element_id%TYPE;
10716: l_ui_node_name CZ_UI_PAGE_ELEMENTS.name%TYPE;
10717: l_counter NUMBER;
10718: l_parent_seq_nbr NUMBER;
10719: l_last_seq_nbr NUMBER;
10720: l_prev_seq_nbr NUMBER;
10745: l_ui_node.pagebase_persistent_node_id := p_parent_ui_node.persistent_node_id;
10746: l_ui_node.page_id := p_parent_ui_node.page_id;
10747:
10748: IF p_insert_index = -1 THEN
10749: SELECT NVL(MAX(seq_nbr),0) INTO l_max_prev_seq_nbr FROM CZ_UI_PAGE_ELEMENTS
10750: START WITH ui_def_id=g_UI_Context.ui_def_id AND
10751: page_id=p_parent_ui_node.page_id AND
10752: element_id=p_parent_ui_node.element_id AND
10753: deleted_flag NOT IN(G_YES_FLAG,G_MARK_TO_DELETE)
10761: END IF;
10762:
10763: l_ui_node.seq_nbr := l_max_prev_seq_nbr + 1;
10764:
10765: UPDATE CZ_UI_PAGE_ELEMENTS
10766: SET seq_nbr=seq_nbr+1
10767: WHERE ui_def_id=g_UI_Context.ui_def_id AND
10768: page_id=p_parent_ui_node.page_id AND
10769: seq_nbr>l_max_prev_seq_nbr AND
10783: p_ps_node_type => p_node.ps_node_type);
10784: l_ui_node.element_signature_id := 6007;
10785: l_ui_node.deleted_flag := G_MARK_TO_ADD;
10786:
10787: SELECT COUNT(element_id)+1 INTO l_counter FROM CZ_UI_PAGE_ELEMENTS
10788: WHERE ui_def_id=g_UI_Context.ui_def_id AND
10789: page_id=l_ui_node.page_id AND
10790: ctrl_template_id=l_ui_node.ctrl_template_id AND
10791: deleted_flag NOT IN(G_YES_FLAG,G_MARK_TO_DELETE);
10791: deleted_flag NOT IN(G_YES_FLAG,G_MARK_TO_DELETE);
10792:
10793: l_ui_node.name :='Nested Region - '||TO_CHAR(l_counter);
10794:
10795: INSERT INTO CZ_UI_PAGE_ELEMENTS
10796: (ui_def_id,
10797: persistent_node_id,
10798: parent_persistent_node_id,
10799: region_persistent_node_id,
10857: --
10858: -- create new UI Reference
10859: --
10860: FUNCTION create_UI_Reference(p_node IN CZ_UITEMPLS_FOR_PSNODES_V%ROWTYPE,
10861: p_parent_ui_node IN CZ_UI_PAGE_ELEMENTS%ROWTYPE)
10862: RETURN CZ_UI_PAGE_ELEMENTS%ROWTYPE IS
10863:
10864: l_ui_node CZ_UI_PAGE_ELEMENTS%ROWTYPE;
10865: l_page_ref_node CZ_UI_PAGE_REFS%ROWTYPE;
10858: -- create new UI Reference
10859: --
10860: FUNCTION create_UI_Reference(p_node IN CZ_UITEMPLS_FOR_PSNODES_V%ROWTYPE,
10861: p_parent_ui_node IN CZ_UI_PAGE_ELEMENTS%ROWTYPE)
10862: RETURN CZ_UI_PAGE_ELEMENTS%ROWTYPE IS
10863:
10864: l_ui_node CZ_UI_PAGE_ELEMENTS%ROWTYPE;
10865: l_page_ref_node CZ_UI_PAGE_REFS%ROWTYPE;
10866: l_target_ui_def_node CZ_UI_DEFS%ROWTYPE;
10860: FUNCTION create_UI_Reference(p_node IN CZ_UITEMPLS_FOR_PSNODES_V%ROWTYPE,
10861: p_parent_ui_node IN CZ_UI_PAGE_ELEMENTS%ROWTYPE)
10862: RETURN CZ_UI_PAGE_ELEMENTS%ROWTYPE IS
10863:
10864: l_ui_node CZ_UI_PAGE_ELEMENTS%ROWTYPE;
10865: l_page_ref_node CZ_UI_PAGE_REFS%ROWTYPE;
10866: l_target_ui_def_node CZ_UI_DEFS%ROWTYPE;
10867: l_page_ref_id CZ_UI_PAGE_REFS.page_ref_id%TYPE;
10868: l_ui_action_id CZ_UI_ACTIONS.ui_action_id%TYPE;
10865: l_page_ref_node CZ_UI_PAGE_REFS%ROWTYPE;
10866: l_target_ui_def_node CZ_UI_DEFS%ROWTYPE;
10867: l_page_ref_id CZ_UI_PAGE_REFS.page_ref_id%TYPE;
10868: l_ui_action_id CZ_UI_ACTIONS.ui_action_id%TYPE;
10869: l_max_seq_nbr CZ_UI_PAGE_ELEMENTS.seq_nbr%TYPE;
10870: l_ps_node_type CZ_PS_NODES.ps_node_type%TYPE;
10871: l_target_path CZ_UI_PAGE_REFS.target_path%TYPE;
10872: l_ps_node CZ_UITEMPLS_FOR_PSNODES_V%ROWTYPE;
10873: l_counter NUMBER;
10899: l_ui_node.pagebase_persistent_node_id := p_parent_ui_node.pagebase_persistent_node_id;
10900: l_ui_node.page_id := p_parent_ui_node.page_id;
10901:
10902:
10903: SELECT NVL(MAX(seq_nbr),0) INTO l_max_prev_seq_nbr FROM CZ_UI_PAGE_ELEMENTS
10904: START WITH ui_def_id=g_UI_Context.ui_def_id AND
10905: page_id=p_parent_ui_node.page_id AND
10906: element_id=p_parent_ui_node.element_id AND
10907: deleted_flag NOT IN(G_YES_FLAG,G_MARK_TO_DELETE)
10912: deleted_flag NOT IN(G_YES_FLAG,G_MARK_TO_DELETE);
10913:
10914: l_ui_node.seq_nbr := l_max_prev_seq_nbr + 1;
10915:
10916: UPDATE CZ_UI_PAGE_ELEMENTS
10917: SET seq_nbr=seq_nbr+1
10918: WHERE ui_def_id=g_UI_Context.ui_def_id AND
10919: page_id=p_parent_ui_node.page_id AND
10920: seq_nbr>l_max_prev_seq_nbr AND
10939: l_ui_node.ctrl_template_ui_def_id := p_node.template_ui_def_id;
10940: l_ui_node.element_signature_id := p_node.root_element_signature_id;
10941: l_ui_node.deleted_flag := G_MARK_TO_ADD;
10942:
10943: SELECT COUNT(element_id)+1 INTO l_counter FROM CZ_UI_PAGE_ELEMENTS
10944: WHERE ui_def_id=g_UI_Context.ui_def_id AND
10945: page_id=l_ui_node.page_id AND
10946: ctrl_template_id=l_ui_node.ctrl_template_id AND
10947: deleted_flag NOT IN(G_YES_FLAG,G_MARK_TO_DELETE);
10955: IF p_node.detailed_type_id IN(CZ_TYPES.UMANDATORY_REF_TYPEID) THEN
10956: BEGIN
10957:
10958: SELECT NVL(MAX(seq_nbr),0) INTO l_max_seq_nbr
10959: FROM CZ_UI_PAGE_ELEMENTS
10960: WHERE ui_def_id=l_ui_node.ui_def_id
10961: AND parent_element_id=l_ui_node.parent_element_id
10962: AND deleted_flag IN(G_NO_FLAG,G_MARK_TO_REFRESH,G_MARK_TO_ADD)
10963: AND element_type IN(G_UI_BOMADDINST_NODE_TYPE);
10962: AND deleted_flag IN(G_NO_FLAG,G_MARK_TO_REFRESH,G_MARK_TO_ADD)
10963: AND element_type IN(G_UI_BOMADDINST_NODE_TYPE);
10964:
10965: SELECT persistent_node_id INTO l_persistent_node_id
10966: FROM CZ_UI_PAGE_ELEMENTS
10967: WHERE ui_def_id=l_ui_node.ui_def_id AND
10968: parent_element_id=l_ui_node.parent_element_id AND
10969: seq_nbr=l_max_seq_nbr AND
10970: ROWNUM<2;
10990: END;
10991: END IF;
10992:
10993: --
10994: -- model nodes must have associated record in CZ_UI_PAGE_ELEMENTS
10995: --
10996: INSERT INTO CZ_UI_PAGE_ELEMENTS
10997: (ui_def_id,
10998: persistent_node_id,
10992:
10993: --
10994: -- model nodes must have associated record in CZ_UI_PAGE_ELEMENTS
10995: --
10996: INSERT INTO CZ_UI_PAGE_ELEMENTS
10997: (ui_def_id,
10998: persistent_node_id,
10999: parent_persistent_node_id,
11000: region_persistent_node_id,
11202:
11203: --
11204: -- delete UI element recursively
11205: --
11206: PROCEDURE delete_UI_Element(p_ui_node IN CZ_UI_PAGE_ELEMENTS%ROWTYPE,
11207: p_suppress_refresh_flag IN CZ_UI_PAGE_ELEMENTS.suppress_refresh_flag%TYPE DEFAULT NULL,
11208: p_delete_in_model IN BOOLEAN DEFAULT NULL) IS
11209:
11210: l_suppress_refresh_flag CZ_UI_PAGE_ELEMENTS.suppress_refresh_flag%TYPE;
11203: --
11204: -- delete UI element recursively
11205: --
11206: PROCEDURE delete_UI_Element(p_ui_node IN CZ_UI_PAGE_ELEMENTS%ROWTYPE,
11207: p_suppress_refresh_flag IN CZ_UI_PAGE_ELEMENTS.suppress_refresh_flag%TYPE DEFAULT NULL,
11208: p_delete_in_model IN BOOLEAN DEFAULT NULL) IS
11209:
11210: l_suppress_refresh_flag CZ_UI_PAGE_ELEMENTS.suppress_refresh_flag%TYPE;
11211: l_del_flag BOOLEAN := FALSE;
11206: PROCEDURE delete_UI_Element(p_ui_node IN CZ_UI_PAGE_ELEMENTS%ROWTYPE,
11207: p_suppress_refresh_flag IN CZ_UI_PAGE_ELEMENTS.suppress_refresh_flag%TYPE DEFAULT NULL,
11208: p_delete_in_model IN BOOLEAN DEFAULT NULL) IS
11209:
11210: l_suppress_refresh_flag CZ_UI_PAGE_ELEMENTS.suppress_refresh_flag%TYPE;
11211: l_del_flag BOOLEAN := FALSE;
11212: BEGIN
11213:
11214: --
11216: -- belong to
11217: --
11218: IF p_suppress_refresh_flag IS NULL THEN
11219: FOR i IN (SELECT persistent_node_id,region_persistent_node_id,suppress_refresh_flag
11220: FROM CZ_UI_PAGE_ELEMENTS
11221: START WITH ui_def_id = p_ui_node.ui_def_id AND
11222: deleted_flag IN
11223: (G_NO_FLAG, G_MARK_TO_ADD, G_MARK_TO_REFRESH,
11224: G_MARK_TO_DELETE) AND element_id = p_ui_node.element_id
11251:
11252: --
11253: -- delete UI element
11254: --
11255: UPDATE CZ_UI_PAGE_ELEMENTS
11256: SET deleted_flag = G_MARK_TO_DELETE
11257: WHERE ui_def_id = p_ui_node.ui_def_id AND
11258: element_id IN
11259: (SELECT element_id FROM CZ_UI_PAGE_ELEMENTS
11255: UPDATE CZ_UI_PAGE_ELEMENTS
11256: SET deleted_flag = G_MARK_TO_DELETE
11257: WHERE ui_def_id = p_ui_node.ui_def_id AND
11258: element_id IN
11259: (SELECT element_id FROM CZ_UI_PAGE_ELEMENTS
11260: START WITH ui_def_id=p_ui_node.ui_def_id AND element_id=p_ui_node.element_id
11261: CONNECT BY PRIOR ui_def_id=p_ui_node.ui_def_id AND ui_def_id=p_ui_node.ui_def_id AND
11262: PRIOR element_id=parent_element_id AND
11263: deleted_flag IN (G_NO_FLAG, G_MARK_TO_ADD, G_MARK_TO_REFRESH,G_MARK_TO_DELETE) AND
11269: IF p_delete_in_model THEN
11270: --
11271: -- deassociate UI element from model node
11272: --
11273: UPDATE CZ_UI_PAGE_ELEMENTS
11274: SET deleted_flag = G_MARK_TO_DEASSOCIATE,
11275: persistent_node_id = 0
11276: WHERE ui_def_id = p_ui_node.ui_def_id AND
11277: element_id IN
11274: SET deleted_flag = G_MARK_TO_DEASSOCIATE,
11275: persistent_node_id = 0
11276: WHERE ui_def_id = p_ui_node.ui_def_id AND
11277: element_id IN
11278: (SELECT element_id FROM CZ_UI_PAGE_ELEMENTS
11279: START WITH ui_def_id=p_ui_node.ui_def_id AND element_id=p_ui_node.element_id
11280: CONNECT BY PRIOR ui_def_id=p_ui_node.ui_def_id AND
11281: PRIOR element_id=parent_element_id AND
11282: deleted_flag IN (G_NO_FLAG, G_MARK_TO_ADD, G_MARK_TO_REFRESH,G_MARK_TO_DELETE) AND
11305: SET deleted_flag = G_YES_FLAG
11306: WHERE ui_def_id=p_ui_node.ui_def_id AND
11307: ref_persistent_node_id=p_ui_node.persistent_node_id AND
11308: deleted_flag=G_NO_FLAG AND NOT EXISTS
11309: (SELECT NULL FROM CZ_UI_PAGE_ELEMENTS
11310: WHERE ui_def_id=p_ui_node.ui_def_id AND
11311: persistent_node_id=p_ui_node.persistent_node_id AND
11312: deleted_flag IN(G_NO_FLAG,G_MARK_TO_ADD,G_MARK_TO_REFRESH));
11313: END IF;
11323:
11324: --
11325: -- remove UI Page Ref record
11326: --
11327: PROCEDURE remove_UI_Page_Ref(p_ui_node IN CZ_UI_PAGE_ELEMENTS%ROWTYPE) IS
11328:
11329: l_page_ref_id NUMBER;
11330: l_parent_page_ref_id NUMBER;
11331: l_page_set_id NUMBER;
11363: WHEN OTHERS THEN
11364: NULL;
11365: END remove_UI_Page_Ref;
11366:
11367: PROCEDURE delete_Related_Buttons(p_ui_node IN CZ_UI_PAGE_ELEMENTS%ROWTYPE) IS
11368: l_suppress_refresh_flag CZ_UI_PAGE_ELEMENTS.suppress_refresh_flag%TYPE;
11369: BEGIN
11370:
11371: FOR i IN(SELECT element_id,parent_element_id,page_id,suppress_refresh_flag
11364: NULL;
11365: END remove_UI_Page_Ref;
11366:
11367: PROCEDURE delete_Related_Buttons(p_ui_node IN CZ_UI_PAGE_ELEMENTS%ROWTYPE) IS
11368: l_suppress_refresh_flag CZ_UI_PAGE_ELEMENTS.suppress_refresh_flag%TYPE;
11369: BEGIN
11370:
11371: FOR i IN(SELECT element_id,parent_element_id,page_id,suppress_refresh_flag
11372: FROM CZ_UI_PAGE_ELEMENTS a
11368: l_suppress_refresh_flag CZ_UI_PAGE_ELEMENTS.suppress_refresh_flag%TYPE;
11369: BEGIN
11370:
11371: FOR i IN(SELECT element_id,parent_element_id,page_id,suppress_refresh_flag
11372: FROM CZ_UI_PAGE_ELEMENTS a
11373: WHERE ui_def_id=p_ui_node.ui_def_id AND
11374: persistent_node_id=p_ui_node.persistent_node_id AND
11375: element_type IN(G_UI_BOMADDINST_NODE_TYPE,
11376: G_UI_NONBOMADDINST_NODE_TYPE,
11381: IF i.parent_element_id IS NOT NULL THEN
11382: BEGIN
11383: l_suppress_refresh_flag := G_NO_FLAG;
11384: SELECT NVL(suppress_refresh_flag,G_NO_FLAG) INTO l_suppress_refresh_flag
11385: FROM CZ_UI_PAGE_ELEMENTS
11386: WHERE ui_def_id = p_ui_node.ui_def_id AND
11387: page_id = i.page_id AND
11388: element_id=i.parent_element_id;
11389: EXCEPTION
11392: END;
11393: END IF;
11394:
11395: IF l_suppress_refresh_flag=G_YES_FLAG OR i.suppress_refresh_flag=G_YES_FLAG THEN
11396: UPDATE CZ_UI_PAGE_ELEMENTS
11397: SET deleted_flag = G_MARK_TO_DEASSOCIATE,
11398: persistent_node_id=0
11399: WHERE ui_def_id = p_ui_node.ui_def_id AND
11400: page_id = i.page_id AND
11399: WHERE ui_def_id = p_ui_node.ui_def_id AND
11400: page_id = i.page_id AND
11401: element_id = i.element_id;
11402: ELSE
11403: UPDATE CZ_UI_PAGE_ELEMENTS
11404: SET deleted_flag = G_MARK_TO_DELETE
11405: WHERE ui_def_id = p_ui_node.ui_def_id AND
11406: page_id = i.page_id AND
11407: element_id = i.element_id;
11415:
11416: --
11417: -- delete UI container
11418: --
11419: PROCEDURE delete_UI_Container(p_ui_node IN CZ_UI_PAGE_ELEMENTS%ROWTYPE) IS
11420: TYPE number_tbl_type IS TABLE OF NUMBER INDEX BY BINARY_INTEGER;
11421: l_element_id_tbl varchar_tbl_type;
11422: l_parent_element_id_tbl varchar_tbl_type;
11423: l_persistent_node_id_tbl number_tbl_type;
11422: l_parent_element_id_tbl varchar_tbl_type;
11423: l_persistent_node_id_tbl number_tbl_type;
11424: l_suppress_refresh_flag_tbl varchar_tbl_type;
11425: l_page_id_tbl number_tbl_type;
11426: l_suppress_refresh_flag CZ_UI_PAGE_ELEMENTS.suppress_refresh_flag%TYPE;
11427:
11428: BEGIN
11429:
11430: --
11434:
11435: SELECT element_id, parent_element_id, persistent_node_id,page_id, NVL(suppress_refresh_flag,G_NO_FLAG)
11436: BULK COLLECT INTO l_element_id_tbl, l_parent_element_id_tbl, l_persistent_node_id_tbl,
11437: l_page_id_tbl, l_suppress_refresh_flag_tbl
11438: FROM CZ_UI_PAGE_ELEMENTS
11439: WHERE ui_def_id=p_ui_node.ui_def_id AND
11440: page_id=p_ui_node.page_id AND
11441: deleted_flag NOT IN(G_YES_FLAG);
11442:
11456:
11457: SELECT element_id,persistent_node_id,page_id, suppress_refresh_flag
11458: BULK COLLECT INTO l_element_id_tbl, l_persistent_node_id_tbl,
11459: l_page_id_tbl, l_suppress_refresh_flag_tbl
11460: FROM CZ_UI_PAGE_ELEMENTS
11461: START WITH ui_def_id=p_ui_node.ui_def_id AND
11462: page_id=p_ui_node.page_id AND
11463: element_id=p_ui_node.element_id
11464: CONNECT BY PRIOR element_id=parent_element_id AND
11479: BEGIN
11480: l_suppress_refresh_flag := G_NO_FLAG;
11481: IF l_parent_element_id_tbl(i) IS NOT NULL THEN
11482: SELECT NVL(suppress_refresh_flag,G_NO_FLAG) INTO l_suppress_refresh_flag
11483: FROM CZ_UI_PAGE_ELEMENTS
11484: WHERE ui_def_id = p_ui_node.ui_def_id AND
11485: page_id = p_ui_node.page_id AND
11486: element_id=l_parent_element_id_tbl(i);
11487: END IF;
11490: NULL;
11491: END;
11492:
11493: IF l_suppress_refresh_flag=G_YES_FLAG OR l_suppress_refresh_flag_tbl(i)=G_YES_FLAG THEN
11494: UPDATE CZ_UI_PAGE_ELEMENTS
11495: SET deleted_flag = G_MARK_TO_DEASSOCIATE,
11496: persistent_node_id=0
11497: WHERE ui_def_id = p_ui_node.ui_def_id AND
11498: page_id = p_ui_node.page_id AND
11497: WHERE ui_def_id = p_ui_node.ui_def_id AND
11498: page_id = p_ui_node.page_id AND
11499: element_id = l_element_id_tbl(i);
11500: ELSE
11501: UPDATE CZ_UI_PAGE_ELEMENTS
11502: SET deleted_flag = G_MARK_TO_DELETE
11503: WHERE ui_def_id = p_ui_node.ui_def_id AND
11504: page_id = p_ui_node.page_id AND
11505: element_id = l_element_id_tbl(i);
11515: END delete_UI_Container;
11516:
11517: PROCEDURE handle_Deleted_Nodes(p_ui_def_id IN NUMBER) IS
11518:
11519: l_suppress_refresh_flag CZ_UI_PAGE_ELEMENTS.suppress_refresh_flag%TYPE;
11520:
11521: BEGIN
11522:
11523: -- delete UI References
11543:
11544: --
11545: -- delete UI page
11546: --
11547: PROCEDURE delete_UI_Page(p_ui_node IN CZ_UI_PAGE_ELEMENTS%ROWTYPE) IS
11548:
11549: l_page_set_id CZ_UI_PAGE_SETS.page_set_id%TYPE;
11550: l_parent_page_ref_id CZ_UI_PAGE_REFS.page_ref_id%TYPE;
11551: l_seq_nbr CZ_UI_PAGE_REFS.seq_nbr%TYPE;
11567:
11568: --
11569: -- delete UI region
11570: --
11571: PROCEDURE delete_UI_Region(p_ui_node IN CZ_UI_PAGE_ELEMENTS%ROWTYPE) IS
11572: BEGIN
11573: delete_UI_Container(p_ui_node);
11574: END delete_UI_Region;
11575:
11646: END IF;
11647: END replace_page_ref_target_path;
11648:
11649:
11650: PROCEDURE replace_page_ref_target_path(p_ui_node IN CZ_UI_PAGE_ELEMENTS%ROWTYPE,
11651: p_node IN CZ_UITEMPLS_FOR_PSNODES_V%ROWTYPE) IS
11652:
11653: l_page_set_id CZ_UI_PAGE_REFS.page_set_id%TYPE;
11654: l_target_path CZ_UI_PAGE_REFS.target_path%TYPE;
11750:
11751: END move_page_ref;
11752:
11753:
11754: PROCEDURE move_page_ref(p_ui_node IN CZ_UI_PAGE_ELEMENTS%ROWTYPE,
11755: p_node IN CZ_UITEMPLS_FOR_PSNODES_V%ROWTYPE,
11756: x_new_parent_page_ref_id OUT NOCOPY CZ_UI_PAGE_REFS.page_ref_id%TYPE) IS
11757:
11758: l_page_set_id CZ_UI_PAGE_REFS.page_set_id%TYPE;
11785:
11786: --
11787: -- change instantiability of Page
11788: --
11789: PROCEDURE check_Page_Changes(p_ui_node IN CZ_UI_PAGE_ELEMENTS%ROWTYPE,
11790: p_node IN CZ_UITEMPLS_FOR_PSNODES_V%ROWTYPE) IS
11791:
11792: l_changed_pages_tbl number_tbl_type;
11793: l_persistent_node_id_tbl number_tbl_type;
11798: l_parent_ref_persist_id CZ_UI_PAGE_REFS.target_persistent_node_id%TYPE;
11799: l_new_parent_page_ref_id CZ_UI_PAGE_REFS.page_ref_id%TYPE;
11800: l_curr_target_path CZ_UI_PAGE_REFS.target_path%TYPE;
11801: l_page_set_suppress_flag CZ_UI_PAGE_SETS.suppress_refresh_flag%TYPE;
11802: l_mark_flag CZ_UI_PAGE_ELEMENTS.deleted_flag%TYPE;
11803: l_ui_node_name CZ_UI_PAGE_ELEMENTS.name%TYPE;
11804:
11805: BEGIN
11806:
11799: l_new_parent_page_ref_id CZ_UI_PAGE_REFS.page_ref_id%TYPE;
11800: l_curr_target_path CZ_UI_PAGE_REFS.target_path%TYPE;
11801: l_page_set_suppress_flag CZ_UI_PAGE_SETS.suppress_refresh_flag%TYPE;
11802: l_mark_flag CZ_UI_PAGE_ELEMENTS.deleted_flag%TYPE;
11803: l_ui_node_name CZ_UI_PAGE_ELEMENTS.name%TYPE;
11804:
11805: BEGIN
11806:
11807: SELECT page_set_id INTO l_page_set_id FROM CZ_UI_PAGES
11817: IF p_node.parent_persistent_node_id<>p_ui_node.parent_persistent_node_id AND
11818: p_ui_node.instantiable_flag=p_node.instantiable_flag AND
11819: p_ui_node.instantiable_flag IN(G_OPTIONAL_INST_TYPE,G_MINMAX_INST_TYPE,G_MANDATORY_INST_TYPE) THEN
11820:
11821: FOR i IN(SELECT page_id,element_id,parent_element_id,suppress_refresh_flag FROM CZ_UI_PAGE_ELEMENTS
11822: WHERE ui_def_id=p_ui_node.ui_def_id AND
11823: persistent_node_id=p_ui_node.parent_persistent_node_id AND
11824: ((region_persistent_node_id=persistent_node_id OR
11825: pagebase_persistent_node_id=persistent_node_id) AND
11829: ,G_3COLS_CONTAINER_TEMPLATE_ID)) AND
11830: deleted_flag NOT IN(G_YES_FLAG,G_MARK_TO_DELETE))
11831: LOOP
11832: IF i.suppress_refresh_flag=G_YES_FLAG THEN
11833: UPDATE CZ_UI_PAGE_ELEMENTS
11834: SET deleted_flag=G_MARK_TO_DEASSOCIATE,
11835: persistent_node_id=0
11836: WHERE ui_def_id=p_ui_node.ui_def_id AND
11837: page_id=i.page_id AND
11839: element_type IN(G_UI_NONBOMADDINST_NODE_TYPE,
11840: G_UI_BOMADDINST_NODE_TYPE,
11841: G_UI_PAGEDRILLDOWN_NODE_TYPE);
11842: ELSE
11843: UPDATE CZ_UI_PAGE_ELEMENTS
11844: SET deleted_flag=G_MARK_TO_DELETE
11845: WHERE ui_def_id=p_ui_node.ui_def_id AND
11846: page_id=i.page_id AND
11847: persistent_node_id=p_ui_node.persistent_node_id AND
11853: mark_UI_Page_As_Refreshed(i.page_id, p_ui_node.ui_def_id);
11854:
11855: END LOOP;
11856:
11857: FOR parent_ui_node IN(SELECT * FROM CZ_UI_PAGE_ELEMENTS
11858: WHERE ui_def_id=g_UI_Context.ui_def_id AND
11859: persistent_node_id=p_node.parent_persistent_node_id AND
11860: ((region_persistent_node_id=persistent_node_id OR
11861: pagebase_persistent_node_id=persistent_node_id) AND
11901:
11902: IF g_UI_Context.PRIMARY_NAVIGATION IN(G_SINGLE_PAGE,G_SUBTABS) OR
11903: l_new_parent_page_ref_id IS NULL THEN
11904:
11905: FOR parent_ui_node IN(SELECT * FROM CZ_UI_PAGE_ELEMENTS
11906: WHERE ui_def_id=g_UI_Context.ui_def_id AND
11907: persistent_node_id=p_node.parent_persistent_node_id AND
11908: (region_persistent_node_id=persistent_node_id OR
11909: pagebase_persistent_node_id=persistent_node_id) AND
11939:
11940: g_check_boundaries_tbl(g_UI_Context.ui_def_id) := G_YES_FLAG;
11941:
11942: --
11943: -- synchronize CZ_UI_PAGE_ELEMENTS.instantiable_flag with
11944: -- CZ_PS_NODES.instantiable_flag
11945: --
11946: FOR n IN(SELECT ui_def_id,page_id,element_id FROM CZ_UI_PAGE_ELEMENTS a
11947: WHERE ui_def_id=p_ui_node.ui_def_id AND
11942: --
11943: -- synchronize CZ_UI_PAGE_ELEMENTS.instantiable_flag with
11944: -- CZ_PS_NODES.instantiable_flag
11945: --
11946: FOR n IN(SELECT ui_def_id,page_id,element_id FROM CZ_UI_PAGE_ELEMENTS a
11947: WHERE ui_def_id=p_ui_node.ui_def_id AND
11948: persistent_node_id=p_ui_node.persistent_node_id AND
11949: element_type IN(G_UI_NONBOMADDINST_NODE_TYPE,G_UI_BOMADDINST_NODE_TYPE) AND
11950: deleted_flag=G_NO_FLAG AND NVL(suppress_refresh_flag,G_NO_FLAG)=G_NO_FLAG AND
11947: WHERE ui_def_id=p_ui_node.ui_def_id AND
11948: persistent_node_id=p_ui_node.persistent_node_id AND
11949: element_type IN(G_UI_NONBOMADDINST_NODE_TYPE,G_UI_BOMADDINST_NODE_TYPE) AND
11950: deleted_flag=G_NO_FLAG AND NVL(suppress_refresh_flag,G_NO_FLAG)=G_NO_FLAG AND
11951: EXISTS(SELECT NULL FROM CZ_UI_PAGE_ELEMENTS
11952: WHERE ui_def_id=p_ui_node.ui_def_id AND
11953: page_id=a.page_id AND
11954: element_id=a.parent_element_id AND
11955: NVL(suppress_refresh_flag,G_NO_FLAG)=G_NO_FLAG)
11959: l_ui_node_name := get_UI_Node_Name(p_page_id => n.page_id,
11960: p_template_id => p_node.template_id,
11961: p_template_name => p_node.template_name);
11962:
11963: UPDATE CZ_UI_PAGE_ELEMENTS a
11964: SET ctrl_template_id = p_node.template_id,
11965: ctrl_template_ui_def_id = p_node.template_ui_def_id,
11966: instantiable_flag = p_node.instantiable_flag,
11967: name=l_ui_node_name,
11981: mark_UI_Page_As_Refreshed(l_changed_pages_tbl(i), g_UI_Context.ui_def_id);
11982: END LOOP;
11983: END IF;
11984:
11985: FOR parent_ui_node IN(SELECT * FROM CZ_UI_PAGE_ELEMENTS a
11986: WHERE ui_def_id=g_UI_Context.ui_def_id AND
11987: persistent_node_id=p_node.parent_persistent_node_id AND
11988: (region_persistent_node_id=persistent_node_id OR
11989: pagebase_persistent_node_id=persistent_node_id) AND
11992: ctrl_template_id IN( G_CONTAINER_TEMPLATE_ID
11993: ,G_NSTD_CONTAINER_TEMPLATE_ID
11994: ,G_2COLS_CONTAINER_TEMPLATE_ID
11995: ,G_3COLS_CONTAINER_TEMPLATE_ID) AND
11996: NOT EXISTS(SELECT NULL FROM CZ_UI_PAGE_ELEMENTS b
11997: WHERE b.ui_def_id=g_UI_Context.ui_def_id AND
11998: b.page_id=a.page_id AND
11999: b.region_persistent_node_id=a.region_persistent_node_id AND
12000: b.persistent_node_id=p_ui_node.persistent_node_id AND
12016: p_ui_node.instantiable_flag=G_MANDATORY_INST_TYPE THEN
12017:
12018: g_check_boundaries_tbl(g_UI_Context.ui_def_id) := G_YES_FLAG;
12019:
12020: FOR parent_ui_node IN(SELECT * FROM CZ_UI_PAGE_ELEMENTS
12021: WHERE ui_def_id=g_UI_Context.ui_def_id AND
12022: persistent_node_id=p_node.parent_persistent_node_id AND
12023: ((region_persistent_node_id=persistent_node_id OR
12024: pagebase_persistent_node_id=persistent_node_id) AND
12045:
12046: END IF;
12047:
12048: --
12049: -- synchronize CZ_UI_PAGE_ELEMENTS.instantiable_flag with
12050: -- CZ_PS_NODES.instantiable_flag
12051: --
12052: UPDATE CZ_UI_PAGE_ELEMENTS
12053: SET instantiable_flag = p_node.instantiable_flag,
12048: --
12049: -- synchronize CZ_UI_PAGE_ELEMENTS.instantiable_flag with
12050: -- CZ_PS_NODES.instantiable_flag
12051: --
12052: UPDATE CZ_UI_PAGE_ELEMENTS
12053: SET instantiable_flag = p_node.instantiable_flag,
12054: parent_persistent_node_id=p_node.parent_persistent_node_id
12055: WHERE ui_def_id = p_ui_node.ui_def_id AND
12056: persistent_node_id = p_ui_node.persistent_node_id;
12062:
12063: --
12064: -- change instantiability of Page
12065: --
12066: PROCEDURE check_Reference_Changes(p_ui_node IN CZ_UI_PAGE_ELEMENTS%ROWTYPE,
12067: p_node IN CZ_UITEMPLS_FOR_PSNODES_V%ROWTYPE) IS
12068: l_refresh_ui_page BOOLEAN:=FALSE;
12069: l_persistent_node_id NUMBER;
12070: l_max_seq_nbr NUMBER;
12070: l_max_seq_nbr NUMBER;
12071: l_ps_node_type NUMBER;
12072: l_ps_node CZ_UITEMPLS_FOR_PSNODES_V%ROWTYPE;
12073: l_target_path CZ_UI_PAGE_REFS.target_path%TYPE;
12074: l_ui_node_name CZ_UI_PAGE_ELEMENTS.name%TYPE;
12075: l_template_id NUMBER;
12076: l_template_ui_def_id NUMBER;
12077:
12078: BEGIN
12093: WHERE devl_project_id=p_node.reference_id AND
12094: parent_id IS NULL AND
12095: deleted_flag=G_NO_FLAG;
12096:
12097: FOR i IN(SELECT persistent_node_id FROM CZ_UI_PAGE_ELEMENTS
12098: WHERE ui_def_id=p_ui_node.ui_def_id
12099: AND parent_element_id=p_ui_node.parent_element_id
12100: AND persistent_node_id<>p_ui_node.persistent_node_id AND
12101: deleted_flag IN(G_NO_FLAG,G_MARK_TO_REFRESH,G_MARK_TO_ADD))
12120: l_ui_node_name := get_UI_Node_Name(p_page_id => p_ui_node.page_id,
12121: p_template_id => l_template_id,
12122: p_template_name => p_node.template_name);
12123:
12124: UPDATE CZ_UI_PAGE_ELEMENTS
12125: SET ctrl_template_id = l_template_id,
12126: ctrl_template_ui_def_id = l_template_ui_def_id,
12127: element_type = G_UI_DRILLDOWN_NODE_TYPE,
12128: instantiable_flag = p_node.instantiable_flag,
12151:
12152: --
12153: -- synchronize UI template with actual detailed node type
12154: --
12155: UPDATE CZ_UI_PAGE_ELEMENTS
12156: SET ctrl_template_id = p_node.template_id,
12157: ctrl_template_ui_def_id = p_node.template_ui_def_id,
12158: instantiable_flag = p_node.instantiable_flag,
12159: name=l_ui_node_name,
12182:
12183: --
12184: -- synchronize UI template with actual detailed node type
12185: --
12186: UPDATE CZ_UI_PAGE_ELEMENTS
12187: SET ctrl_template_id = p_node.template_id,
12188: ctrl_template_ui_def_id = p_node.template_ui_def_id,
12189: instantiable_flag = p_node.instantiable_flag,
12190: element_type = G_UI_NONBOMADDINST_NODE_TYPE,
12206: WHERE ui_def_id=p_ui_node.ui_def_id AND
12207: page_id=p_ui_node.page_id;
12208: END IF;
12209:
12210: UPDATE CZ_UI_PAGE_ELEMENTS
12211: SET instantiable_flag = p_node.instantiable_flag
12212: WHERE ui_def_id = p_ui_node.ui_def_id AND
12213: persistent_node_id = p_ui_node.persistent_node_id AND
12214: instantiable_flag <> p_node.instantiable_flag;
12230:
12231: END check_Reference_Changes;
12232:
12233:
12234: PROCEDURE check_Connector_Changes(p_ui_node IN CZ_UI_PAGE_ELEMENTS%ROWTYPE,
12235: p_node IN CZ_UITEMPLS_FOR_PSNODES_V%ROWTYPE) IS
12236: l_refresh_ui_page BOOLEAN:=FALSE;
12237: l_persistent_node_id NUMBER;
12238: l_max_seq_nbr NUMBER;
12238: l_max_seq_nbr NUMBER;
12239: l_ps_node_type NUMBER;
12240: l_ps_node CZ_UITEMPLS_FOR_PSNODES_V%ROWTYPE;
12241: l_target_path CZ_UI_PAGE_REFS.target_path%TYPE;
12242: l_ui_node_name CZ_UI_PAGE_ELEMENTS.name%TYPE;
12243: l_instantiable_flag CZ_UI_PAGE_ELEMENTS.instantiable_flag%TYPE;
12244: l_template_id NUMBER;
12245: l_template_ui_def_id NUMBER;
12246:
12239: l_ps_node_type NUMBER;
12240: l_ps_node CZ_UITEMPLS_FOR_PSNODES_V%ROWTYPE;
12241: l_target_path CZ_UI_PAGE_REFS.target_path%TYPE;
12242: l_ui_node_name CZ_UI_PAGE_ELEMENTS.name%TYPE;
12243: l_instantiable_flag CZ_UI_PAGE_ELEMENTS.instantiable_flag%TYPE;
12244: l_template_id NUMBER;
12245: l_template_ui_def_id NUMBER;
12246:
12247: BEGIN
12262: ELSE
12263: l_instantiable_flag := G_MINMAX_INST_TYPE;
12264: END IF;
12265:
12266: UPDATE CZ_UI_PAGE_ELEMENTS
12267: SET ctrl_template_id = l_template_id,
12268: ctrl_template_ui_def_id = l_template_ui_def_id,
12269: instantiable_flag = l_instantiable_flag,
12270: name=l_ui_node_name,
12288:
12289: --
12290: -- change instantiability of UI region
12291: --
12292: PROCEDURE check_Region_Changes(p_ui_node IN CZ_UI_PAGE_ELEMENTS%ROWTYPE,
12293: p_node IN CZ_UITEMPLS_FOR_PSNODES_V%ROWTYPE) IS
12294:
12295: l_page_ui_node CZ_UI_PAGE_ELEMENTS%ROWTYPE;
12296: l_page_set_id CZ_UI_PAGE_SETS.page_set_id%TYPE;
12291: --
12292: PROCEDURE check_Region_Changes(p_ui_node IN CZ_UI_PAGE_ELEMENTS%ROWTYPE,
12293: p_node IN CZ_UITEMPLS_FOR_PSNODES_V%ROWTYPE) IS
12294:
12295: l_page_ui_node CZ_UI_PAGE_ELEMENTS%ROWTYPE;
12296: l_page_set_id CZ_UI_PAGE_SETS.page_set_id%TYPE;
12297: l_page_ref_id CZ_UI_PAGE_REFS.page_ref_id%TYPE;
12298: l_page_set_type CZ_UI_PAGE_SETS.page_set_type%TYPE;
12299:
12311: x_page_set_type => l_page_set_type,
12312: x_page_ref_id => l_page_ref_id,
12313: p_parent_page_id => p_ui_node.page_id);
12314:
12315: UPDATE CZ_UI_PAGE_ELEMENTS
12316: SET deleted_flag=G_MARK_TO_DELETE
12317: WHERE ui_def_id=p_ui_node.ui_def_id AND
12318: page_id=p_ui_node.page_id AND
12319: element_id=p_ui_node.element_id;
12317: WHERE ui_def_id=p_ui_node.ui_def_id AND
12318: page_id=p_ui_node.page_id AND
12319: element_id=p_ui_node.element_id;
12320:
12321: UPDATE CZ_UI_PAGE_ELEMENTS
12322: SET page_id = l_page_ui_node.page_id,
12323: pagebase_persistent_node_id = l_page_ui_node.persistent_node_id,
12324: deleted_flag=G_MARK_TO_ADD
12325: WHERE (ui_def_id,page_id,element_id) IN
12323: pagebase_persistent_node_id = l_page_ui_node.persistent_node_id,
12324: deleted_flag=G_MARK_TO_ADD
12325: WHERE (ui_def_id,page_id,element_id) IN
12326: (SELECT ui_def_id,page_id,element_id FROM
12327: CZ_UI_PAGE_ELEMENTS
12328: START WITH ui_def_id=p_ui_node.ui_def_id AND
12329: page_id=p_ui_node.page_id AND
12330: element_id=p_ui_node.element_id
12331: CONNECT BY
12337: page_id=p_ui_node.page_id AND
12338: deleted_flag <> G_YES_FLAG)
12339: AND element_id <> p_ui_node.element_id;
12340:
12341: UPDATE CZ_UI_PAGE_ELEMENTS
12342: SET parent_element_id=l_page_ui_node.element_id
12343: WHERE ui_def_id=p_ui_node.ui_def_id AND
12344: page_id=l_page_ui_node.page_id AND
12345: parent_element_id=p_ui_node.element_id;
12363:
12364: --
12365: -- add new UI node
12366: --
12367: PROCEDURE add_New_UI_Node(p_ui_node IN CZ_UI_PAGE_ELEMENTS%ROWTYPE,
12368: p_insert_index IN NUMBER DEFAULT -1,
12369: p_model_node IN CZ_UITEMPLS_FOR_PSNODES_V%ROWTYPE,
12370: p_suppress_refresh_flag IN VARCHAR2,
12371: x_new_ui_pages_tbl IN OUT NOCOPY ui_page_elements_tbl_type,
12368: p_insert_index IN NUMBER DEFAULT -1,
12369: p_model_node IN CZ_UITEMPLS_FOR_PSNODES_V%ROWTYPE,
12370: p_suppress_refresh_flag IN VARCHAR2,
12371: x_new_ui_pages_tbl IN OUT NOCOPY ui_page_elements_tbl_type,
12372: x_new_ui_node OUT NOCOPY CZ_UI_PAGE_ELEMENTS%ROWTYPE) IS
12373:
12374: l_old_page_id NUMBER;
12375: l_page_set_id NUMBER;
12376: l_page_set_type NUMBER;
12434:
12435: --
12436: -- check UI Node changes
12437: --
12438: PROCEDURE check_UI_Node_Changes(p_ui_node IN CZ_UI_PAGE_ELEMENTS%ROWTYPE,
12439: p_model_node IN CZ_UITEMPLS_FOR_PSNODES_V%ROWTYPE) IS
12440:
12441: l_ui_layout_ui_style CZ_UI_TEMPLATES.layout_ui_style%TYPE;
12442: l_model_layout_ui_style CZ_UI_TEMPLATES.layout_ui_style%TYPE;
12439: p_model_node IN CZ_UITEMPLS_FOR_PSNODES_V%ROWTYPE) IS
12440:
12441: l_ui_layout_ui_style CZ_UI_TEMPLATES.layout_ui_style%TYPE;
12442: l_model_layout_ui_style CZ_UI_TEMPLATES.layout_ui_style%TYPE;
12443: l_feature_element_id CZ_UI_PAGE_ELEMENTS.element_id%TYPE;
12444: l_under_root_ui_node CZ_UI_PAGE_ELEMENTS%ROWTYPE;
12445: l_max_seq_nbr NUMBER;
12446:
12447: CURSOR l_ui_bom_tab_cur IS
12440:
12441: l_ui_layout_ui_style CZ_UI_TEMPLATES.layout_ui_style%TYPE;
12442: l_model_layout_ui_style CZ_UI_TEMPLATES.layout_ui_style%TYPE;
12443: l_feature_element_id CZ_UI_PAGE_ELEMENTS.element_id%TYPE;
12444: l_under_root_ui_node CZ_UI_PAGE_ELEMENTS%ROWTYPE;
12445: l_max_seq_nbr NUMBER;
12446:
12447: CURSOR l_ui_bom_tab_cur IS
12448: SELECT * FROM CZ_UI_PAGE_ELEMENTS
12444: l_under_root_ui_node CZ_UI_PAGE_ELEMENTS%ROWTYPE;
12445: l_max_seq_nbr NUMBER;
12446:
12447: CURSOR l_ui_bom_tab_cur IS
12448: SELECT * FROM CZ_UI_PAGE_ELEMENTS
12449: WHERE ui_def_id=p_ui_node.ui_def_id AND
12450: parent_element_id=p_ui_node.element_id AND
12451: persistent_node_id=p_model_node.persistent_node_id AND
12452: element_type=G_UI_BOMADDINST_NODE_TYPE AND
12576: p_model_node => p_model_node);
12577: ELSE
12578:
12579: BEGIN
12580: SELECT NVL(MAX(seq_nbr),0)+1 INTO l_max_seq_nbr FROM CZ_UI_PAGE_ELEMENTS
12581: WHERE ui_def_id=g_UI_Context.ui_def_id AND
12582: page_id=p_ui_node.page_id AND
12583: parent_element_id IS NOT NULL AND
12584: (ctrl_template_id,ctrl_template_ui_def_id) IN
12599: p_model_node => p_model_node);
12600:
12601: ELSE
12602:
12603: UPDATE CZ_UI_PAGE_ELEMENTS
12604: SET deleted_flag=G_MARK_TO_DELETE
12605: WHERE ui_def_id=g_UI_Context.ui_def_id AND
12606: page_id=p_ui_node.page_id AND
12607: element_id=p_ui_node.element_id;
12613: ui_def_id=g_UI_Context.ui_def_id;
12614:
12615: l_feature_element_id := get_Element_Id();
12616:
12617: INSERT INTO CZ_UI_PAGE_ELEMENTS
12618: (
12619: UI_DEF_ID
12620: ,PAGE_ID
12621: ,PERSISTENT_NODE_ID
12655: ,ELEMENT_TYPE
12656: ,NAME
12657: ,ELEMENT_SIGNATURE_ID
12658: ,SUPPRESS_REFRESH_FLAG
12659: FROM CZ_UI_PAGE_ELEMENTS
12660: WHERE ui_def_id=g_UI_Context.ui_def_id AND
12661: page_id=p_ui_node.page_id AND
12662: element_id=p_ui_node.element_id;
12663:
12660: WHERE ui_def_id=g_UI_Context.ui_def_id AND
12661: page_id=p_ui_node.page_id AND
12662: element_id=p_ui_node.element_id;
12663:
12664: UPDATE CZ_UI_PAGE_ELEMENTS
12665: SET parent_element_id=l_feature_element_id
12666: WHERE ui_def_id=g_UI_Context.ui_def_id AND
12667: page_id=p_ui_node.page_id AND
12668: parent_element_id=p_ui_node.element_id;
12693: --
12694: -- create new split UI Page
12695: --
12696: FUNCTION clone_UI_Page(p_page_id IN NUMBER)
12697: RETURN CZ_UI_PAGE_ELEMENTS%ROWTYPE IS
12698:
12699: l_element_id CZ_UI_PAGE_ELEMENTS.element_id%TYPE;
12700: l_ui_node CZ_UI_PAGE_ELEMENTS%ROWTYPE;
12701: l_split_seq_nbr CZ_UI_PAGES.split_seq_nbr%TYPE;
12695: --
12696: FUNCTION clone_UI_Page(p_page_id IN NUMBER)
12697: RETURN CZ_UI_PAGE_ELEMENTS%ROWTYPE IS
12698:
12699: l_element_id CZ_UI_PAGE_ELEMENTS.element_id%TYPE;
12700: l_ui_node CZ_UI_PAGE_ELEMENTS%ROWTYPE;
12701: l_split_seq_nbr CZ_UI_PAGES.split_seq_nbr%TYPE;
12702: l_page_id CZ_UI_PAGES.page_id%TYPE;
12703: l_page_ref_id CZ_UI_PAGE_REFS.page_ref_id%TYPE;
12696: FUNCTION clone_UI_Page(p_page_id IN NUMBER)
12697: RETURN CZ_UI_PAGE_ELEMENTS%ROWTYPE IS
12698:
12699: l_element_id CZ_UI_PAGE_ELEMENTS.element_id%TYPE;
12700: l_ui_node CZ_UI_PAGE_ELEMENTS%ROWTYPE;
12701: l_split_seq_nbr CZ_UI_PAGES.split_seq_nbr%TYPE;
12702: l_page_id CZ_UI_PAGES.page_id%TYPE;
12703: l_page_ref_id CZ_UI_PAGE_REFS.page_ref_id%TYPE;
12704: l_seq_nbr CZ_UI_PAGE_REFS.seq_nbr%TYPE;
12809: WHERE ui_def_id=g_UI_Context.ui_def_id AND
12810: page_id=p_page_id;
12811:
12812: SELECT * INTO l_ui_node
12813: FROM CZ_UI_PAGE_ELEMENTS
12814: WHERE ui_def_id=g_UI_Context.ui_def_id AND
12815: page_id=p_page_id AND
12816: parent_element_id IS NULL AND
12817: deleted_flag IN(G_NO_FLAG,G_MARK_TO_ADD,G_MARK_TO_REFRESH);
12820: l_ui_node.page_id := l_page_id;
12821: l_ui_node.name := l_ui_node.name||' - '||l_element_id;
12822: l_ui_node.deleted_flag := G_MARK_TO_ADD;
12823:
12824: INSERT INTO CZ_UI_PAGE_ELEMENTS
12825: (ui_def_id,
12826: persistent_node_id,
12827: parent_persistent_node_id,
12828: region_persistent_node_id,
12933:
12934: END clone_UI_Page;
12935:
12936: PROCEDURE collect_UI_Elements
12937: (p_ui_page_node IN CZ_UI_PAGE_ELEMENTS%ROWTYPE,
12938: p_max_controls_per_page IN NUMBER,
12939: x_new_pages_tbl OUT NOCOPY number_tbl_type,
12940: x_elements_tbl OUT NOCOPY ui_page_elements_tbl_type,
12941: x_new_parent_elements_tbl OUT NOCOPY varchar_tbl_type) IS
12939: x_new_pages_tbl OUT NOCOPY number_tbl_type,
12940: x_elements_tbl OUT NOCOPY ui_page_elements_tbl_type,
12941: x_new_parent_elements_tbl OUT NOCOPY varchar_tbl_type) IS
12942:
12943: l_ui_page_node CZ_UI_PAGE_ELEMENTS%ROWTYPE;
12944: l_counter NUMBER:=0;
12945:
12946: BEGIN
12947:
12948: l_ui_page_node := p_ui_page_node;
12949:
12950: FOR k IN(SELECT page_id,TO_NUMBER(element_id) AS element_id,
12951: TO_NUMBER(parent_element_id) AS parent_element_id,seq_nbr
12952: FROM CZ_UI_PAGE_ELEMENTS
12953: WHERE ui_def_id = p_ui_page_node.ui_def_id AND
12954: page_id = p_ui_page_node.page_id AND
12955: parent_element_id IS NOT NULL AND
12956: element_type <> G_UI_REGION_NODE_TYPE AND
12982:
12983: END collect_UI_Elements;
12984:
12985: PROCEDURE handle_Direct_Child_Nodes
12986: (p_ui_page_node IN CZ_UI_PAGE_ELEMENTS%ROWTYPE,
12987: p_elements_tbl IN OUT NOCOPY ui_page_elements_tbl_type,
12988: p_parent_elements_tbl IN OUT NOCOPY varchar_tbl_type) IS
12989:
12990: l_current_element_id NUMBER;
12996: IF l_current_element_id IS NULL THEN
12997: EXIT;
12998: END IF;
12999:
13000: UPDATE CZ_UI_PAGE_ELEMENTS
13001: SET page_id = p_elements_tbl(l_current_element_id).page_id
13002: WHERE ui_def_id = p_ui_page_node.ui_def_id AND
13003: page_id = p_ui_page_node.page_id AND
13004: element_id = TO_CHAR(l_current_element_id);
13003: page_id = p_ui_page_node.page_id AND
13004: element_id = TO_CHAR(l_current_element_id);
13005:
13006: IF p_parent_elements_tbl.EXISTS(l_current_element_id) THEN
13007: UPDATE CZ_UI_PAGE_ELEMENTS
13008: SET parent_element_id = p_parent_elements_tbl(l_current_element_id)
13009: WHERE ui_def_id = p_ui_page_node.ui_def_id AND
13010: page_id = p_ui_page_node.page_id AND
13011: element_id = TO_CHAR(l_current_element_id);
13026: EXIT;
13027: END IF;
13028:
13029: IF p_parent_elements_tbl.EXISTS(l_current_element_id) THEN
13030: UPDATE CZ_UI_PAGE_ELEMENTS
13031: SET parent_element_id = p_parent_elements_tbl(l_current_element_id)
13032: WHERE ui_def_id = p_ui_page_node.ui_def_id AND
13033: page_id = p_elements_tbl(l_current_element_id).page_id AND
13034: element_id = TO_CHAR(l_current_element_id);
13046: x_nested_page_elements_tbl OUT NOCOPY varchar_tbl_type) IS
13047:
13048: BEGIN
13049:
13050: FOR i IN(SELECT DISTINCT parent_element_id FROM CZ_UI_PAGE_ELEMENTS a
13051: WHERE ui_def_id = p_ui_def_id AND
13052: page_id = p_new_page_id AND
13053: parent_element_id IS NOT NULL AND
13054: NOT EXISTS(SELECT NULL FROM CZ_UI_PAGE_ELEMENTS
13050: FOR i IN(SELECT DISTINCT parent_element_id FROM CZ_UI_PAGE_ELEMENTS a
13051: WHERE ui_def_id = p_ui_def_id AND
13052: page_id = p_new_page_id AND
13053: parent_element_id IS NOT NULL AND
13054: NOT EXISTS(SELECT NULL FROM CZ_UI_PAGE_ELEMENTS
13055: WHERE ui_def_id = p_ui_def_id AND
13056: page_id = p_new_page_id AND
13057: element_id=a.parent_element_id))
13058: LOOP
13072: l_num_element_id NUMBER;
13073:
13074: BEGIN
13075:
13076: FOR i IN(SELECT element_id,parent_element_id,element_type FROM CZ_UI_PAGE_ELEMENTS
13077: START WITH ui_def_id = p_ui_def_id AND
13078: page_id= p_page_id AND
13079: element_id=p_element_id
13080: CONNECT BY PRIOR ui_def_id = p_ui_def_id AND
13119: END IF;
13120:
13121: l_nested_rgn_elements_tbl.DELETE;
13122:
13123: SELECT element_id INTO l_page_root_element_id FROM CZ_UI_PAGE_ELEMENTS
13124: WHERE ui_def_id=p_ui_def_id AND
13125: page_id=l_new_page_id AND
13126: parent_element_id IS NULL AND
13127: deleted_flag NOT IN(G_YES_FLAG, G_MARK_TO_DELETE);
13156: l_new_parent_element_id := l_rgn_subtree_tbl(TO_NUMBER(l_parent_elements_tbl(l_old_element_id)));
13157: ELSE
13158: l_new_parent_element_id := l_page_root_element_id;
13159: END IF;
13160: INSERT INTO CZ_UI_PAGE_ELEMENTS
13161: (UI_DEF_ID
13162: ,PAGE_ID
13163: ,PERSISTENT_NODE_ID
13164: ,ELEMENT_ID
13196: ,ELEMENT_TYPE
13197: ,NAME
13198: ,ELEMENT_SIGNATURE_ID
13199: ,SUPPRESS_REFRESH_FLAG
13200: FROM CZ_UI_PAGE_ELEMENTS
13201: WHERE ui_def_id=p_ui_def_id AND
13202: page_id=p_page_id AND
13203: element_id=TO_CHAR(l_old_element_id);
13204:
13201: WHERE ui_def_id=p_ui_def_id AND
13202: page_id=p_page_id AND
13203: element_id=TO_CHAR(l_old_element_id);
13204:
13205: UPDATE CZ_UI_PAGE_ELEMENTS
13206: SET parent_element_id=l_new_element_id
13207: WHERE ui_def_id=p_ui_def_id AND
13208: page_id=l_new_page_id AND
13209: parent_element_id=TO_CHAR(l_old_element_id);
13223: -- split a single Page
13224: -- Parameters :
13225: -- p_ui_node - identifies UI node of page
13226: --
13227: PROCEDURE split_Page(p_ui_page_node IN CZ_UI_PAGE_ELEMENTS%ROWTYPE,
13228: p_max_controls_per_page IN NUMBER ) IS
13229:
13230: l_elements_tbl ui_page_elements_tbl_type;
13231: l_new_pages_tbl number_tbl_type;
13281: --
13282: -- split UI Pages
13283: --
13284: FOR i IN (SELECT *
13285: FROM CZ_UI_PAGE_ELEMENTS
13286: WHERE ui_def_id = g_UI_Context.ui_def_id AND
13287: parent_element_id IS NULL AND
13288: persistent_node_id=pagebase_persistent_node_id AND
13289: NVL(suppress_refresh_flag, G_NO_FLAG) = G_NO_FLAG AND
13374: l_counter NUMBER:=0;
13375:
13376: PROCEDURE set_UI_Order_(p_element_id IN VARCHAR2) IS
13377: BEGIN
13378: FOR i IN(SELECT element_id FROM CZ_UI_PAGE_ELEMENTS
13379: WHERE ui_def_id=g_UI_Context.ui_def_id AND
13380: page_id=p_page_id AND
13381: parent_element_id=p_element_id AND
13382: deleted_flag=G_NO_FLAG ORDER BY seq_nbr)
13381: parent_element_id=p_element_id AND
13382: deleted_flag=G_NO_FLAG ORDER BY seq_nbr)
13383: LOOP
13384: l_counter := l_counter + 1;
13385: UPDATE CZ_UI_PAGE_ELEMENTS
13386: SET seq_nbr = l_counter
13387: WHERE ui_def_id=g_UI_Context.ui_def_id AND
13388: element_id=i.element_id;
13389: set_UI_Order_(i.element_id);
13390: END LOOP;
13391: END set_UI_Order_;
13392:
13393: BEGIN
13394: FOR i IN(SELECT element_id FROM CZ_UI_PAGE_ELEMENTS
13395: WHERE ui_def_id=g_UI_Context.ui_def_id AND
13396: page_id=p_page_id AND
13397: parent_element_id IS NULL AND
13398: deleted_flag=G_NO_FLAG ORDER BY seq_nbr)
13543: -- get child UI Nodes
13544: --
13545: PROCEDURE get_Child_UI_Nodes
13546: (
13547: p_parent_ui_node IN CZ_UI_PAGE_ELEMENTS%ROWTYPE,
13548: p_child_nodes_tbl IN OUT NOCOPY model_nodes_tbl_type,
13549: x_ui_nodes_tbl OUT NOCOPY ui_page_elements_tbl_type,
13550: p_suppress_refresh_flag IN VARCHAR2
13551: ) IS
13567:
13568: END IF;
13569:
13570: FOR i IN (SELECT *
13571: FROM CZ_UI_PAGE_ELEMENTS
13572: WHERE ui_def_id = p_parent_ui_node.ui_def_id AND
13573: page_id=p_parent_ui_node.page_id AND
13574: parent_element_id=p_parent_ui_node.element_id AND
13575: deleted_flag IN (G_NO_FLAG,
13654: p_suppress_refresh_flag IN VARCHAR2
13655: ) IS
13656:
13657: l_current_ui_index NUMBER;
13658: l_current_ui_node CZ_UI_PAGE_ELEMENTS%ROWTYPE;
13659:
13660: BEGIN
13661:
13662:
13708:
13709: END delete_UI_Nodes;
13710:
13711: PROCEDURE exist_On_Split_Pages(p_current_model_node IN CZ_UITEMPLS_FOR_PSNODES_V%ROWTYPE, -->>>
13712: p_parent_ui_node IN CZ_UI_PAGE_ELEMENTS%ROWTYPE,
13713: px_page_split_seq_nbr OUT NOCOPY NUMBER,
13714: l_exist_on_split_pages_flag OUT NOCOPY VARCHAR2) IS
13715:
13716: l_page_persistent_node_id NUMBER;
13726:
13727: IF px_page_split_seq_nbr=1 THEN
13728: SELECT G_YES_FLAG INTO l_exist_on_split_pages_flag FROM dual
13729: WHERE EXISTS
13730: (SELECT NULL FROM CZ_UI_PAGE_ELEMENTS
13731: WHERE ui_def_id=g_UI_Context.ui_def_id AND page_id IN(SELECT page_id FROM CZ_UI_PAGES
13732: WHERE ui_def_id=g_UI_Context.ui_def_id AND persistent_node_id=l_page_persistent_node_id AND
13733: split_seq_nbr>1 AND deleted_flag NOT IN(G_YES_FLAG)) AND
13734: persistent_node_id=p_current_model_node.persistent_node_id AND
13735: deleted_flag NOT IN(G_YES_FLAG));
13736: ELSIF px_page_split_seq_nbr>1 THEN
13737: SELECT G_YES_FLAG INTO l_exist_on_split_pages_flag FROM dual
13738: WHERE EXISTS
13739: (SELECT NULL FROM CZ_UI_PAGE_ELEMENTS
13740: WHERE ui_def_id=g_UI_Context.ui_def_id AND page_id IN(SELECT page_id FROM CZ_UI_PAGES
13741: WHERE ui_def_id=g_UI_Context.ui_def_id AND persistent_node_id=l_page_persistent_node_id AND
13742: split_seq_nbr<>px_page_split_seq_nbr AND deleted_flag NOT IN(G_YES_FLAG)) AND
13743: persistent_node_id=p_current_model_node.persistent_node_id AND
13767: l_page_id_tbl number_tbl_type;
13768: l_suppress_refresh_flag_tbl varchar_tbl_type;
13769:
13770: l_ps_node CZ_UITEMPLS_FOR_PSNODES_V%ROWTYPE;
13771: l_ui_node CZ_UI_PAGE_ELEMENTS%ROWTYPE;
13772: l_new_ui_node CZ_UI_PAGE_ELEMENTS%ROWTYPE;
13773: l_suppress_refresh_flag CZ_UI_PAGE_ELEMENTS.suppress_refresh_flag%TYPE;
13774: l_current_model_node CZ_UITEMPLS_FOR_PSNODES_V%ROWTYPE;
13775: l_seq_nbr NUMBER;
13768: l_suppress_refresh_flag_tbl varchar_tbl_type;
13769:
13770: l_ps_node CZ_UITEMPLS_FOR_PSNODES_V%ROWTYPE;
13771: l_ui_node CZ_UI_PAGE_ELEMENTS%ROWTYPE;
13772: l_new_ui_node CZ_UI_PAGE_ELEMENTS%ROWTYPE;
13773: l_suppress_refresh_flag CZ_UI_PAGE_ELEMENTS.suppress_refresh_flag%TYPE;
13774: l_current_model_node CZ_UITEMPLS_FOR_PSNODES_V%ROWTYPE;
13775: l_seq_nbr NUMBER;
13776: l_max_split_nbr NUMBER;
13769:
13770: l_ps_node CZ_UITEMPLS_FOR_PSNODES_V%ROWTYPE;
13771: l_ui_node CZ_UI_PAGE_ELEMENTS%ROWTYPE;
13772: l_new_ui_node CZ_UI_PAGE_ELEMENTS%ROWTYPE;
13773: l_suppress_refresh_flag CZ_UI_PAGE_ELEMENTS.suppress_refresh_flag%TYPE;
13774: l_current_model_node CZ_UITEMPLS_FOR_PSNODES_V%ROWTYPE;
13775: l_seq_nbr NUMBER;
13776: l_max_split_nbr NUMBER;
13777: l_page_split_seq_nbr NUMBER;
13918: -- handle next level of UI tree ( recursion )
13919: --
13920: SELECT element_id, page_id, suppress_refresh_flag
13921: BULK COLLECT INTO l_element_id_tbl, l_page_id_tbl, l_suppress_refresh_flag_tbl
13922: FROM CZ_UI_PAGE_ELEMENTS
13923: WHERE ui_def_id = g_UI_Context.ui_def_id AND
13924: page_id=p_page_id AND
13925: parent_element_id = l_ui_node.element_id AND
13926: deleted_flag IN(G_NO_FLAG, G_MARK_TO_ADD, G_MARK_TO_REFRESH) AND
13969: RETURN BOOLEAN IS
13970: l_flag VARCHAR2(1);
13971: BEGIN
13972: SELECT G_YES_FLAG INTO l_flag
13973: FROM CZ_UI_PAGE_ELEMENTS
13974: WHERE ui_def_id=g_UI_Context.ui_def_id AND
13975: page_id=p_page_id AND
13976: parent_element_id IS NOT NULL AND
13977: deleted_flag NOT IN(G_YES_FLAG,G_MARK_TO_DELETE) AND
14123: WHERE ui_def_id=g_UI_Context.ui_def_id AND
14124: deleted_flag NOT IN(G_LIMBO_FLAG,G_MARK_TO_DELETE,G_YES_FLAG))
14125: LOOP
14126: FOR k IN(SELECT element_id,persistent_node_id,model_ref_expl_id,name
14127: FROM CZ_UI_PAGE_ELEMENTS
14128: WHERE ui_def_id=g_UI_Context.ui_def_id AND
14129: page_id=i.page_id AND
14130: deleted_flag NOT IN(G_LIMBO_FLAG,G_MARK_TO_DELETE,G_YES_FLAG))
14131: LOOP
14157: --
14158: PROCEDURE get_parent_ui_node(p_ps_node IN CZ_UITEMPLS_FOR_PSNODES_V%ROWTYPE,
14159: p_ord_siblings IN model_nodes_tbl_type,
14160: p_ps_node_index IN NUMBER,
14161: x_parent_ui_node OUT NOCOPY CZ_UI_PAGE_ELEMENTS%ROWTYPE,
14162: x_insert_index OUT NOCOPY NUMBER,
14163: x_refresh_enabled_parent_found OUT NOCOPY BOOLEAN,
14164: x_atleast_one_parent_found OUT NOCOPY BOOLEAN) IS
14165:
14167: l_predecessor CZ_UITEMPLS_FOR_PSNODES_V%ROWTYPE;
14168: l_successor CZ_UITEMPLS_FOR_PSNODES_V%ROWTYPE;
14169: l_pred_persistent_node_id NUMBER := NULL;
14170: l_succ_persistent_node_id NUMBER := NULL;
14171: l_parent_ui_node CZ_UI_PAGE_ELEMENTS%ROWTYPE;
14172: l_parent_element_id NUMBER;
14173: l_page_id NUMBER;
14174: l_added BOOLEAN;
14175:
14204: -- contain the predecessor and successor of this node.
14205:
14206: IF l_pred_persistent_node_id IS NOT NULL AND l_succ_persistent_node_id IS NOT NULL THEN
14207: FOR i IN (SELECT *
14208: FROM CZ_UI_PAGE_ELEMENTS pe1
14209: WHERE ui_def_Id = g_UI_Context.ui_def_id
14210: AND region_persistent_node_id = l_parent_ps_node.persistent_node_id
14211: AND persistent_node_id = l_pred_persistent_node_id
14212: AND deleted_flag IN (G_NO_FLAG, G_MARK_TO_ADD, G_MARK_TO_REFRESH)
14211: AND persistent_node_id = l_pred_persistent_node_id
14212: AND deleted_flag IN (G_NO_FLAG, G_MARK_TO_ADD, G_MARK_TO_REFRESH)
14213: AND parent_element_id IS NOT NULL
14214: AND EXISTS ( SELECT 1
14215: FROM CZ_UI_PAGE_ELEMENTS pe2
14216: WHERE ui_def_Id = g_UI_Context.ui_def_id
14217: AND pe2.page_id = pe1.page_id
14218: AND pe2.parent_element_id = pe1.parent_element_id
14219: AND pe2.persistent_node_id = l_succ_persistent_node_id
14238:
14239:
14240: IF l_pred_persistent_node_id IS NOT NULL AND NOT x_refresh_enabled_parent_found THEN
14241: FOR i IN (SELECT *
14242: FROM CZ_UI_PAGE_ELEMENTS pe1
14243: WHERE ui_def_Id = g_UI_Context.ui_def_id
14244: AND region_persistent_node_id = l_parent_ps_node.persistent_node_id
14245: AND persistent_node_id = l_pred_persistent_node_id
14246: AND deleted_flag IN (G_NO_FLAG, G_MARK_TO_ADD, G_MARK_TO_REFRESH)
14263:
14264: IF l_succ_persistent_node_id IS NOT NULL AND NOT x_refresh_enabled_parent_found THEN
14265:
14266: FOR i IN (SELECT *
14267: FROM CZ_UI_PAGE_ELEMENTS pe1
14268: WHERE ui_def_Id = g_UI_Context.ui_def_id
14269: AND region_persistent_node_id = l_parent_ps_node.persistent_node_id
14270: AND persistent_node_id = l_succ_persistent_node_id
14271: AND deleted_flag = G_NO_FLAG
14292: l_parent_element_id := NULL;
14293: l_page_id := NULL;
14294:
14295: FOR i IN (SELECT parent_element_id, page_id, count(parent_element_id) max_count
14296: FROM CZ_UI_PAGE_ELEMENTS pe
14297: WHERE ui_def_Id = g_UI_Context.ui_def_id
14298: AND parent_persistent_node_id = l_parent_ps_node.persistent_node_id
14299: AND pagebase_persistent_node_id <> persistent_node_id
14300: AND deleted_flag IN (G_NO_FLAG, G_MARK_TO_ADD, G_MARK_TO_REFRESH)
14324:
14325: IF NOT x_refresh_enabled_parent_found THEN
14326:
14327: FOR j IN (SELECT *
14328: FROM CZ_UI_PAGE_ELEMENTS
14329: WHERE ui_def_id = g_UI_Context.ui_def_id AND
14330: persistent_node_Id = l_parent_ps_node.persistent_node_id AND
14331: deleted_flag IN(G_NO_FLAG, G_MARK_TO_ADD, G_MARK_TO_REFRESH) AND
14332: element_type IN(G_UI_PAGE_NODE_TYPE,G_UI_REGION_NODE_TYPE))
14350:
14351: PROCEDURE add_ui_for_node(p_ps_node IN CZ_UITEMPLS_FOR_PSNODES_V%ROWTYPE,
14352: p_ord_siblings IN model_nodes_tbl_type,
14353: p_ps_node_index IN NUMBER DEFAULT NULL,
14354: x_ui_node OUT NOCOPY CZ_UI_PAGE_ELEMENTS%ROWTYPE) IS
14355:
14356: l_parent_ps_node CZ_UITEMPLS_FOR_PSNODES_V%ROWTYPE;
14357: l_parent_ui_node CZ_UI_PAGE_ELEMENTS%ROWTYPE;
14358: l_temp_ui_node CZ_UI_PAGE_ELEMENTS%ROWTYPE;
14353: p_ps_node_index IN NUMBER DEFAULT NULL,
14354: x_ui_node OUT NOCOPY CZ_UI_PAGE_ELEMENTS%ROWTYPE) IS
14355:
14356: l_parent_ps_node CZ_UITEMPLS_FOR_PSNODES_V%ROWTYPE;
14357: l_parent_ui_node CZ_UI_PAGE_ELEMENTS%ROWTYPE;
14358: l_temp_ui_node CZ_UI_PAGE_ELEMENTS%ROWTYPE;
14359: l_next_level_ui_pages_tbl ui_page_elements_tbl_type;
14360: l_insert_index NUMBER;
14361: l_suppress_refresh_flag CZ_UI_PAGE_ELEMENTS.suppress_refresh_flag%TYPE;
14354: x_ui_node OUT NOCOPY CZ_UI_PAGE_ELEMENTS%ROWTYPE) IS
14355:
14356: l_parent_ps_node CZ_UITEMPLS_FOR_PSNODES_V%ROWTYPE;
14357: l_parent_ui_node CZ_UI_PAGE_ELEMENTS%ROWTYPE;
14358: l_temp_ui_node CZ_UI_PAGE_ELEMENTS%ROWTYPE;
14359: l_next_level_ui_pages_tbl ui_page_elements_tbl_type;
14360: l_insert_index NUMBER;
14361: l_suppress_refresh_flag CZ_UI_PAGE_ELEMENTS.suppress_refresh_flag%TYPE;
14362: l_parent_node_found BOOLEAN;
14357: l_parent_ui_node CZ_UI_PAGE_ELEMENTS%ROWTYPE;
14358: l_temp_ui_node CZ_UI_PAGE_ELEMENTS%ROWTYPE;
14359: l_next_level_ui_pages_tbl ui_page_elements_tbl_type;
14360: l_insert_index NUMBER;
14361: l_suppress_refresh_flag CZ_UI_PAGE_ELEMENTS.suppress_refresh_flag%TYPE;
14362: l_parent_node_found BOOLEAN;
14363: l_atleast_one_parent_found BOOLEAN;
14364: l_nodes_tbl model_nodes_tbl_type;
14365: l_seq_nodes_tbl ui_page_el_int_tbl_type; -- fix for bug 6837809 : skudryav 28-Mar-2008
14436:
14437: l_new_parent_persistent_id NUMBER;
14438: l_parent_ps_node CZ_UITEMPLS_FOR_PSNODES_V%ROWTYPE;
14439:
14440: l_parent_ui_node CZ_UI_PAGE_ELEMENTS%ROWTYPE;
14441: l_insert_index NUMBER;
14442: l_suppress_refresh_flag CZ_UI_PAGE_ELEMENTS.suppress_refresh_flag%TYPE;
14443: l_parent_node_found BOOLEAN;
14444:
14438: l_parent_ps_node CZ_UITEMPLS_FOR_PSNODES_V%ROWTYPE;
14439:
14440: l_parent_ui_node CZ_UI_PAGE_ELEMENTS%ROWTYPE;
14441: l_insert_index NUMBER;
14442: l_suppress_refresh_flag CZ_UI_PAGE_ELEMENTS.suppress_refresh_flag%TYPE;
14443: l_parent_node_found BOOLEAN;
14444:
14445: BEGIN
14446:
14448:
14449: --DEBUG('asp:Deleting UI for ps node ' || p_ps_node.name);
14450:
14451: FOR i IN (SELECT *
14452: FROM CZ_UI_PAGE_ELEMENTS pe
14453: WHERE ui_def_Id = g_UI_Context.ui_def_id
14454: AND persistent_node_id = p_ps_node.persistent_node_id
14455: AND deleted_flag = G_NO_FLAG)
14456: LOOP
14494:
14495: l_new_parent_persistent_id NUMBER;
14496: l_parent_ps_node CZ_UITEMPLS_FOR_PSNODES_V%ROWTYPE;
14497:
14498: l_parent_ui_node CZ_UI_PAGE_ELEMENTS%ROWTYPE;
14499: l_insert_index NUMBER;
14500: l_suppress_refresh_flag CZ_UI_PAGE_ELEMENTS.suppress_refresh_flag%TYPE;
14501: l_parent_node_found BOOLEAN;
14502: l_diff NUMBER;
14496: l_parent_ps_node CZ_UITEMPLS_FOR_PSNODES_V%ROWTYPE;
14497:
14498: l_parent_ui_node CZ_UI_PAGE_ELEMENTS%ROWTYPE;
14499: l_insert_index NUMBER;
14500: l_suppress_refresh_flag CZ_UI_PAGE_ELEMENTS.suppress_refresh_flag%TYPE;
14501: l_parent_node_found BOOLEAN;
14502: l_diff NUMBER;
14503: l_max_prev_seq_nbr NUMBER;
14504: l_max_src_seq_nbr NUMBER;
14536:
14537: END IF;
14538:
14539: FOR i IN (SELECT *
14540: FROM CZ_UI_PAGE_ELEMENTS pe
14541: WHERE ui_def_Id = g_UI_Context.ui_def_id
14542: AND persistent_node_id = p_ps_node.persistent_node_id
14543: AND region_persistent_node_id <> l_parent_ps_node.persistent_node_id
14544: AND deleted_flag IN (G_NO_FLAG, G_MARK_TO_DELETE))
14595:
14596: IF l_insert_index > 0 THEN
14597: l_max_prev_seq_nbr := l_insert_index-1;
14598: ELSE
14599: SELECT NVL(MAX(seq_nbr),0) INTO l_max_prev_seq_nbr FROM CZ_UI_PAGE_ELEMENTS
14600: START WITH ui_def_id=g_UI_Context.ui_def_id AND
14601: page_id=l_parent_ui_node.page_id AND
14602: element_id=l_parent_ui_node.element_id AND
14603: deleted_flag NOT IN (G_YES_FLAG, G_LIMBO_FLAG)
14609:
14610: l_insert_index := l_max_prev_seq_nbr + 1;
14611: END IF;
14612:
14613: SELECT NVL(MAX(seq_nbr),0), NVL(COUNT(seq_nbr), 0) INTO l_max_src_seq_nbr, l_count FROM CZ_UI_PAGE_ELEMENTS
14614: START WITH ui_def_id=g_UI_Context.ui_def_id AND
14615: page_id=i.page_id AND
14616: element_id=i.element_id AND
14617: deleted_flag NOT IN (G_YES_FLAG, G_LIMBO_FLAG)
14623:
14624: l_src_range := l_max_src_seq_nbr - i.seq_nbr + 1;
14625:
14626: -- move the elements after the insert point by adding the range value computed above
14627: UPDATE CZ_UI_PAGE_ELEMENTS
14628: SET seq_nbr=seq_nbr+l_src_range
14629: WHERE ui_def_id=g_UI_Context.ui_def_id AND
14630: page_id=l_parent_ui_node.page_id AND
14631: seq_nbr>l_max_prev_seq_nbr AND
14632: deleted_flag NOT IN (G_YES_FLAG, G_LIMBO_FLAG);
14633:
14634: l_diff := l_insert_index - i.seq_nbr;
14635:
14636: UPDATE CZ_UI_PAGE_ELEMENTS
14637: SET seq_nbr=seq_nbr + l_diff,
14638: page_id=l_parent_ui_node.page_id,
14639: pagebase_persistent_node_id=l_parent_ui_node.pagebase_persistent_node_id,
14640: deleted_flag=DECODE(deleted_flag, G_MARK_TO_DELETE, G_NO_FLAG, deleted_flag)
14644: seq_nbr <= l_max_src_seq_nbr AND
14645: deleted_flag NOT IN(G_YES_FLAG, G_LIMBO_FLAG);
14646:
14647: IF i.deleted_flag <> G_MARK_TO_DELETE THEN
14648: UPDATE CZ_UI_PAGE_ELEMENTS
14649: SET seq_nbr=seq_nbr - l_count
14650: WHERE ui_def_id=g_UI_Context.ui_def_id AND
14651: page_id=i.page_id AND
14652: seq_nbr > l_max_src_seq_nbr AND
14652: seq_nbr > l_max_src_seq_nbr AND
14653: deleted_flag NOT IN(G_YES_FLAG, G_LIMBO_FLAG);
14654: END IF;
14655:
14656: UPDATE CZ_UI_PAGE_ELEMENTS
14657: SET parent_element_id = l_parent_ui_node.element_id,
14658: parent_persistent_node_id = l_parent_ps_node.persistent_node_id,
14659: region_persistent_node_id = l_parent_ui_node.persistent_node_id,
14660: deleted_flag = G_MARK_TO_MOVE
14700: -- So we have to disassociate this UI controls from the PS Node
14701:
14702: DEBUG('asp: Cannot move UI for ' || p_ps_node.name || '. Disassociating from PS Node');
14703:
14704: UPDATE CZ_UI_PAGE_ELEMENTS
14705: SET deleted_flag = G_MARK_TO_DEASSOCIATE,
14706: persistent_node_id = 0
14707: WHERE ui_def_id = i.ui_def_id
14708: AND page_id = i.page_id
14706: persistent_node_id = 0
14707: WHERE ui_def_id = i.ui_def_id
14708: AND page_id = i.page_id
14709: AND element_id IN
14710: (SELECT element_id FROM CZ_UI_PAGE_ELEMENTS
14711: START WITH ui_def_id=i.ui_def_id
14712: AND page_id=i.page_id
14713: AND element_id=i.element_id
14714: CONNECT BY PRIOR ui_def_id=i.ui_def_id AND
14721: -- refresh might be enough.
14722:
14723: DEBUG('asp: Cannot move UI for ' || p_ps_node.name || '. Marking it for refresh');
14724:
14725: UPDATE CZ_UI_PAGE_ELEMENTS
14726: SET deleted_flag = G_MARK_TO_REFRESH
14727: WHERE ui_def_id = i.ui_def_id
14728: AND page_id = i.page_id
14729: AND element_id = i.element_id
14739:
14740: PROCEDURE propogate_ps_node_type_changes(p_ps_node IN CZ_UITEMPLS_FOR_PSNODES_V%ROWTYPE,
14741: x_model_ref_expl_id_changed OUT NOCOPY VARCHAR) IS
14742:
14743: l_ui_node CZ_UI_PAGE_ELEMENTS%ROWTYPE;
14744: l_model_ref_expl_id NUMBER;
14745:
14746: BEGIN
14747:
14751: p_ps_node_id => p_ps_node.ps_node_id,
14752: p_component_id => p_ps_node.component_id,
14753: p_ps_node_type => p_ps_node.ps_node_type);
14754: FOR i IN (SELECT *
14755: FROM CZ_UI_PAGE_ELEMENTS pe
14756: WHERE ui_def_Id = g_UI_Context.ui_def_id
14757: AND persistent_node_id = p_ps_node.persistent_node_id
14758: AND deleted_flag IN (G_NO_FLAG, G_MARK_TO_MOVE))
14759: LOOP
14779:
14780:
14781: FUNCTION ui_node_exits(p_ps_node IN CZ_UITEMPLS_FOR_PSNODES_V%ROWTYPE) RETURN BOOLEAN IS
14782:
14783: l_element_id CZ_UI_PAGE_ELEMENTS.element_id%TYPE;
14784:
14785: BEGIN
14786:
14787: SELECT element_id into l_element_id FROM CZ_UI_PAGE_ELEMENTS
14783: l_element_id CZ_UI_PAGE_ELEMENTS.element_id%TYPE;
14784:
14785: BEGIN
14786:
14787: SELECT element_id into l_element_id FROM CZ_UI_PAGE_ELEMENTS
14788: WHERE ui_def_id=g_UI_Context.ui_def_id
14789: AND persistent_node_id=p_ps_node.persistent_node_id
14790: AND deleted_flag=G_NO_FLAG and rownum < 2;
14791: -- need to return the element_id instead
14894: p_component_id => p_ps_node.component_id,
14895: p_ps_node_type => p_ps_node.ps_node_type);
14896:
14897: FOR i in (SELECT *
14898: FROM CZ_UI_PAGE_ELEMENTS
14899: WHERE ui_def_id = g_UI_Context.ui_def_id
14900: AND persistent_node_id = p_ps_node.persistent_node_id
14901: AND deleted_flag NOT IN (G_YES_FLAG, G_LIMBO_FLAG))
14902: LOOP
14933: l_ps_node CZ_UITEMPLS_FOR_PSNODES_V%ROWTYPE;
14934: l_nodes_tbl model_nodes_tbl_type;
14935: l_seq_nodes_tbl ui_page_el_int_tbl_type; -- fix for bug 6837809 : skudryav 28-Mar-2008
14936: l_non_del_child_nodes_tbl model_nodes_tbl_type;
14937: l_new_ui_node CZ_UI_PAGE_ELEMENTS%ROWTYPE;
14938:
14939: l_timestamp_add DATE;
14940: l_timestamp_remove DATE;
14941: l_add_remove_flag VARCHAR2(1);
14945: l_model_ref_expl_changed1 VARCHAR2(1) := 'U';
14946: l_model_ref_expl_changed2 VARCHAR2(1) := 'U';
14947: l_check_for_bom_table BOOLEAN;
14948:
14949: l_bom_table_id CZ_UI_PAGE_ELEMENTS.element_id%TYPE;
14950: l_page_id NUMBER;
14951:
14952: l_bom_parent_element CZ_UI_PAGE_ELEMENTS.element_id%TYPE;
14953: l_suppress_refresh_flag CZ_UI_PAGE_ELEMENTS.suppress_refresh_flag%TYPE;
14948:
14949: l_bom_table_id CZ_UI_PAGE_ELEMENTS.element_id%TYPE;
14950: l_page_id NUMBER;
14951:
14952: l_bom_parent_element CZ_UI_PAGE_ELEMENTS.element_id%TYPE;
14953: l_suppress_refresh_flag CZ_UI_PAGE_ELEMENTS.suppress_refresh_flag%TYPE;
14954:
14955: BEGIN
14956:
14949: l_bom_table_id CZ_UI_PAGE_ELEMENTS.element_id%TYPE;
14950: l_page_id NUMBER;
14951:
14952: l_bom_parent_element CZ_UI_PAGE_ELEMENTS.element_id%TYPE;
14953: l_suppress_refresh_flag CZ_UI_PAGE_ELEMENTS.suppress_refresh_flag%TYPE;
14954:
14955: BEGIN
14956:
14957: l_added_ui := FALSE;
15064: l_check_for_bom_table := TRUE;
15065:
15066: BEGIN
15067: SELECT element_id, page_Id INTO l_bom_table_id, l_page_id
15068: FROM cz_ui_page_elements
15069: WHERE ui_def_Id = g_UI_Context.ui_def_id
15070: AND persistent_node_id = p_ps_node.persistent_node_id
15071: AND deleted_flag IN (G_NO_FLAG, G_MARK_TO_REFRESH)
15072: AND element_type = G_UI_BOMADDINST_NODE_TYPE
15100: -- mark the flag so that we dont do the same for other children
15101: l_check_for_bom_table := FALSE;
15102:
15103: IF NOT(contains_BOM_Nodes(p_ps_node.ps_node_id)) THEN
15104: UPDATE CZ_UI_PAGE_ELEMENTS
15105: SET deleted_flag=G_MARK_TO_DELETE
15106: WHERE ui_def_id=g_UI_Context.ui_def_id
15107: AND page_id = l_page_id
15108: AND element_Id = l_bom_table_id;
15123: persistent_node_id = p_ps_node.persistent_node_id)
15124: LOOP
15125: SELECT element_id, suppress_refresh_flag
15126: INTO l_bom_parent_element, l_suppress_refresh_flag
15127: FROM CZ_UI_PAGE_ELEMENTS
15128: WHERE ui_def_id=g_UI_Context.ui_def_id AND page_id=m.page_id AND
15129: parent_element_id IS NULL AND persistent_node_id=p_ps_node.persistent_node_id AND
15130: pagebase_persistent_node_id=region_persistent_node_id AND
15131: pagebase_persistent_node_id=p_ps_node.persistent_node_id AND
15202: WHERE ui_def_id=g_UI_Context.ui_def_id AND
15203: deleted_flag IN(G_MARK_TO_ADD, G_MARK_TO_REFRESH, G_NO_FLAG))
15204: LOOP
15205: FOR upgel IN(SELECT element_id,
15206: model_ref_expl_id,persistent_node_id FROM CZ_UI_PAGE_ELEMENTS
15207: WHERE ui_def_id=g_UI_Context.ui_def_id AND
15208: page_id=upg.page_id AND
15209: persistent_node_id IN
15210: (SELECT psnode.persistent_node_id FROM CZ_PS_NODES psnode
15245: FOR i IN(SELECT ps_node_id FROM CZ_PS_NODES a
15246: WHERE devl_project_id=g_UI_Context.devl_project_id AND
15247: ps_node_type IN(258,259,436,437) AND
15248: deleted_flag=G_YES_FLAG AND EXISTS(SELECT NULL
15249: FROM CZ_UI_PAGE_ELEMENTS WHERE ui_def_id=g_UI_Context.ui_def_id AND
15250: persistent_node_id=a.persistent_node_id AND deleted_flag=G_NO_FLAG))
15251: LOOP
15252: UPDATE CZ_PS_NODES
15253: SET deleted_flag=G_YES_FLAG
15260: FOR i IN(SELECT ps_node_id FROM CZ_PS_NODES a
15261: WHERE devl_project_id=g_UI_Context.devl_project_id AND
15262: ps_node_type IN(258,259,436,437) AND ui_omit=G_YES_FLAG AND
15263: deleted_flag=G_NO_FLAG AND EXISTS(SELECT NULL
15264: FROM CZ_UI_PAGE_ELEMENTS WHERE ui_def_id=g_UI_Context.ui_def_id AND
15265: persistent_node_id=a.persistent_node_id AND deleted_flag=G_NO_FLAG))
15266: LOOP
15267: UPDATE CZ_PS_NODES
15268: SET deleted_flag=G_YES_FLAG
15281:
15282: IF l_ui_timestamp_refresh IS NULL THEN
15283:
15284: FOR i IN (SELECT ui_def_id, element_id,page_id, suppress_refresh_flag
15285: FROM CZ_UI_PAGE_ELEMENTS
15286: WHERE ui_def_id = g_UI_Context.ui_def_id AND
15287: parent_element_id IS NULL AND
15288: deleted_flag IN (G_NO_FLAG, G_MARK_TO_ADD, G_MARK_TO_REFRESH))
15289: LOOP
15371:
15372: BEGIN
15373:
15374: backup_nodes_to_move(p_page_id);
15375: FOR i IN(SELECT element_id,deleted_flag FROM CZ_UI_PAGE_ELEMENTS
15376: WHERE ui_def_id= g_UI_Context.ui_def_id AND
15377: page_id=p_page_id AND
15378: deleted_flag IN(G_MARK_TO_DELETE,G_MARK_TO_DEASSOCIATE))
15379: LOOP
15428: p_hmode => G_DELETE_ELEMENTS);
15429: END IF;
15430:
15431: IF l_deassociated_nodes_exist THEN
15432: UPDATE CZ_UI_PAGE_ELEMENTS
15433: SET deleted_flag=G_NO_FLAG
15434: WHERE ui_def_id=g_UI_Context.ui_def_id AND
15435: page_id=p_page_id AND
15436: deleted_flag=G_MARK_TO_DEASSOCIATE;
15474: p_token_value => p_jrad_doc,
15475: p_fatal_error => TRUE);
15476: RAISE WRONG_UI_TEMPLATE;
15477: ELSE
15478: UPDATE CZ_UI_PAGE_ELEMENTS
15479: SET deleted_flag=G_MARK_TO_DELETE
15480: WHERE ui_def_id=g_UI_Context.ui_def_id AND
15481: page_id=p_page_id AND
15482: deleted_flag NOT IN(G_MARK_TO_DELETE,G_YES_FLAG);
15528: l_suppress_refresh_tbl varchar_tbl_type;
15529: l_suppress_el_flag_tbl varchar_tbl_type;
15530: l_delete_node BOOLEAN := FALSE;
15531: l_deassociate_cx BOOLEAN := FALSE;
15532: l_suppress_refresh_flag CZ_UI_PAGE_ELEMENTS.suppress_refresh_flag%TYPE;
15533:
15534: BEGIN
15535: FOR i IN(SELECT * FROM CZ_UI_PAGE_ELEMENTS
15536: WHERE ui_def_id=g_UI_Context.ui_def_id AND
15531: l_deassociate_cx BOOLEAN := FALSE;
15532: l_suppress_refresh_flag CZ_UI_PAGE_ELEMENTS.suppress_refresh_flag%TYPE;
15533:
15534: BEGIN
15535: FOR i IN(SELECT * FROM CZ_UI_PAGE_ELEMENTS
15536: WHERE ui_def_id=g_UI_Context.ui_def_id AND
15537: page_id=p_ui_page_id AND
15538: element_type=G_UI_CX_BUTTON_NODE_TYPE AND
15539: deleted_flag IN(G_NO_FLAG, G_MARK_TO_REFRESH))
15545: l_suppress_refresh_flag := G_NO_FLAG;
15546: IF i.parent_element_id IS NOT NULL THEN
15547: BEGIN
15548: SELECT NVL(suppress_refresh_flag,G_NO_FLAG) INTO l_suppress_refresh_flag
15549: FROM CZ_UI_PAGE_ELEMENTS
15550: WHERE ui_def_id=g_UI_Context.ui_def_id AND
15551: page_id=p_ui_page_id AND
15552: element_id=i.parent_element_id;
15553: END;
15603: IF l_deassociate_cx THEN
15604: set_Attribute(l_node, G_USER_ATTRIBUTE1_NAME, 'model_path=*');
15605: set_Attribute(l_node, G_USER_ATTRIBUTE2_NAME, '0');
15606:
15607: UPDATE CZ_UI_PAGE_ELEMENTS
15608: SET persistent_node_id=0
15609: WHERE ui_def_id=g_UI_Context.ui_def_id AND
15610: page_id=p_ui_page_id AND
15611: element_id=l_attribute_value;
15611: element_id=l_attribute_value;
15612: ELSE
15613: l_parent_node:=xmldom.getParentNode(l_node);
15614: l_out_node:=xmldom.removeChild(l_parent_node,l_node);
15615: UPDATE CZ_UI_PAGE_ELEMENTS
15616: SET deleted_flag=G_YES_FLAG
15617: WHERE ui_def_id=g_UI_Context.ui_def_id AND
15618: page_id=p_ui_page_id AND
15619: element_id=l_attribute_value;
15676: l_subtree_doc xmldom.DOMDocument;
15677: l_xml_root_node xmldom.DOMNode;
15678: l_xml_uicontent_node xmldom.DOMNode;
15679: l_xml_node_to_refresh xmldom.DOMNode;
15680: l_page_ui_node CZ_UI_PAGE_ELEMENTS%ROWTYPE;
15681: l_jrad_doc CZ_UI_TEMPLATES.jrad_doc%TYPE;
15682: l_col_number NUMBER := 0;
15683:
15684: PROCEDURE create_Next_XML_Level(p_ui_node CZ_UI_PAGE_ELEMENTS%ROWTYPE,
15680: l_page_ui_node CZ_UI_PAGE_ELEMENTS%ROWTYPE;
15681: l_jrad_doc CZ_UI_TEMPLATES.jrad_doc%TYPE;
15682: l_col_number NUMBER := 0;
15683:
15684: PROCEDURE create_Next_XML_Level(p_ui_node CZ_UI_PAGE_ELEMENTS%ROWTYPE,
15685: p_parent_xml_node xmldom.DOMNode) IS
15686:
15687: l_new_xml_node xmldom.DOMNode;
15688: l_new_opt_xml_node xmldom.DOMNode;
15694: --
15695: -- get child UI nodes
15696: --
15697: FOR i IN (SELECT *
15698: FROM CZ_UI_PAGE_ELEMENTS a
15699: WHERE ui_def_id = g_UI_Context.ui_def_id AND
15700: page_id = p_page_id AND
15701: parent_element_id = p_ui_node.element_id
15702: -- parent_persistent_node_id = p_ui_node.persistent_node_id
15771: END LOOP;
15772:
15773: END create_Next_XML_Level;
15774:
15775: PROCEDURE refresh_UI_Node(p_page_ui_node CZ_UI_PAGE_ELEMENTS%ROWTYPE,
15776: p_xml_parent_node xmldom.DOMNode) IS
15777:
15778: l_xml_node_to_replace xmldom.DOMNode;
15779: l_new_xml_node xmldom.DOMNode;
15779: l_new_xml_node xmldom.DOMNode;
15780:
15781: BEGIN
15782:
15783: FOR i IN(SELECT * FROM CZ_UI_PAGE_ELEMENTS
15784: WHERE ui_def_id=p_page_ui_node.ui_def_id
15785: AND parent_element_id=p_page_ui_node.element_id
15786: AND persistent_node_id=p_page_ui_node.persistent_node_id
15787: AND (element_type IS NULL OR element_type <> G_UI_CX_BUTTON_NODE_TYPE)
15822: g_dom_elements_tbl.DELETE;
15823:
15824: SELECT *
15825: INTO l_page_ui_node
15826: FROM CZ_UI_PAGE_ELEMENTS
15827: WHERE ui_def_id = g_UI_Context.ui_def_id AND
15828: page_id = p_page_id AND
15829: parent_element_id IS NULL AND
15830: -- element_type=G_UI_PAGE_NODE_TYPE AND
15930:
15931: l_subtree_doc xmldom.DOMDocument;
15932: l_xml_root_node xmldom.DOMNode;
15933: l_xml_uicontent_node xmldom.DOMNode;
15934: l_page_ui_node CZ_UI_PAGE_ELEMENTS%ROWTYPE;
15935: l_jrad_doc CZ_UI_TEMPLATES.jrad_doc%TYPE;
15936: l_sub_element_id CZ_UI_PAGE_ELEMENTS.element_id%TYPE;
15937: l_curr_element_id CZ_UI_PAGE_ELEMENTS.element_id%TYPE;
15938: l_child_nodes_tbl xmldom.DOMNodeList;
15932: l_xml_root_node xmldom.DOMNode;
15933: l_xml_uicontent_node xmldom.DOMNode;
15934: l_page_ui_node CZ_UI_PAGE_ELEMENTS%ROWTYPE;
15935: l_jrad_doc CZ_UI_TEMPLATES.jrad_doc%TYPE;
15936: l_sub_element_id CZ_UI_PAGE_ELEMENTS.element_id%TYPE;
15937: l_curr_element_id CZ_UI_PAGE_ELEMENTS.element_id%TYPE;
15938: l_child_nodes_tbl xmldom.DOMNodeList;
15939: l_xml_node xmldom.DOMNode;
15940: l_length NUMBER;
15933: l_xml_uicontent_node xmldom.DOMNode;
15934: l_page_ui_node CZ_UI_PAGE_ELEMENTS%ROWTYPE;
15935: l_jrad_doc CZ_UI_TEMPLATES.jrad_doc%TYPE;
15936: l_sub_element_id CZ_UI_PAGE_ELEMENTS.element_id%TYPE;
15937: l_curr_element_id CZ_UI_PAGE_ELEMENTS.element_id%TYPE;
15938: l_child_nodes_tbl xmldom.DOMNodeList;
15939: l_xml_node xmldom.DOMNode;
15940: l_length NUMBER;
15941: l_col_number NUMBER;
15948: --
15949: -- get child UI nodes
15950: --
15951: FOR i IN (SELECT *
15952: FROM CZ_UI_PAGE_ELEMENTS
15953: WHERE ui_def_id = g_UI_Context.ui_def_id AND
15954: page_id = p_page_id AND
15955: parent_element_id = p_element_id AND
15956: ctrl_template_id IS NOT NULL AND
16040: END IF;
16041:
16042: SELECT *
16043: INTO l_page_ui_node
16044: FROM CZ_UI_PAGE_ELEMENTS
16045: WHERE ui_def_id = g_UI_Context.ui_def_id AND
16046: page_id = p_page_id AND
16047: persistent_node_id = pagebase_persistent_node_id AND
16048: parent_element_id IS NULL AND
16142: BEGIN
16143:
16144: IF g_UI_Context.control_layout IN(1,2) THEN
16145: SELECT COUNT(element_id) INTO g_Num_Elements_On_Page
16146: FROM CZ_UI_PAGE_ELEMENTS
16147: WHERE ui_def_id=g_UI_Context.ui_def_id AND
16148: page_id=p_page_id AND
16149: (element_type IS NULL OR ctrl_template_id IS NOT NULL) AND
16150: deleted_flag NOT IN(G_YES_FLAG,G_MARK_TO_DELETE);
16202: handle_JRAD_Page(p_page_id => i.page_id,
16203: p_page_jrad_doc => i.jrad_doc,
16204: p_page_status => i.deleted_flag);
16205: ELSE
16206: FOR n IN(SELECT G_YES_FLAG FROM CZ_UI_PAGE_ELEMENTS
16207: WHERE ui_def_id=g_UI_Context.ui_def_id AND page_id=i.page_id AND
16208: element_type=G_UI_CX_BUTTON_NODE_TYPE AND
16209: deleted_flag=G_NO_FLAG AND rownum<2)
16210: LOOP
16295: ,p_page_id IN NUMBER
16296: ,p_element_id IN VARCHAR2)
16297: IS
16298: BEGIN
16299: UPDATE CZ_UI_PAGE_ELEMENTS
16300: SET target_page_ui_def_id = NULL, target_page_id = NULL
16301: WHERE ui_def_id = p_ui_def_id AND
16302: page_id = p_page_id AND element_id = p_element_id;
16303:
16312: -- Find all Page Include Regions of current UI
16313: --
16314: FOR i IN (SELECT page_id, element_id, target_page_ui_def_id, target_page_id,
16315: model_ref_expl_id, persistent_node_id, name
16316: FROM CZ_UI_PAGE_ELEMENTS
16317: WHERE ui_def_id = g_UI_Context.ui_def_id AND
16318: element_signature_id = G_PAGE_INCL_REGION_SIGNATURE AND
16319: target_page_ui_def_id IS NOT NULL AND target_page_id IS NOT NULL AND
16320: deleted_flag = G_NO_FLAG)
16377: b.ui_def_id AS ref_ui_def_id, b.page_id AS ref_page_id,
16378: b.name AS ref_element_name, b.element_id AS ref_element_id,
16379: b.persistent_node_id as persistent_node_id,
16380: b.model_ref_expl_id as expl_node_id
16381: FROM CZ_UI_PAGES a, CZ_UI_PAGE_ELEMENTS b
16382: WHERE a.ui_def_id = g_UI_Context.ui_def_id AND
16383: b.element_signature_id = G_PAGE_INCL_REGION_SIGNATURE AND
16384: b.deleted_flag = G_NO_FLAG AND
16385: a.ui_def_id = b.target_page_ui_def_id AND
16446: l_flag := 1;
16447: FOR i IN (SELECT page_id, jrad_doc, pagebase_expl_node_id, persistent_node_id
16448: FROM CZ_UI_PAGES pg
16449: WHERE ui_def_id = l_ui_def_id AND deleted_flag = G_NO_FLAG
16450: AND EXISTS (SELECT NULL FROM CZ_UI_PAGE_ELEMENTS
16451: WHERE ui_def_id = pg.ui_def_id AND page_id = pg.page_id AND
16452: element_signature_id = G_PAGE_INCL_REGION_SIGNATURE AND
16453: target_page_ui_def_id IS NOT NULL AND
16454: target_page_id IS NOT NULL AND deleted_flag=G_NO_FLAG))
16455: LOOP
16456: EXIT WHEN l_flag = 0;
16457: l_xmldoc := parse_JRAD_Document(i.jrad_doc);
16458: l_resave_doc_flag := 0;
16459: FOR j IN (SELECT * FROM CZ_UI_PAGE_ELEMENTS
16460: WHERE ui_def_id = l_ui_def_id AND page_id = i.page_id AND
16461: element_signature_id = G_PAGE_INCL_REGION_SIGNATURE AND
16462: deleted_flag=G_NO_FLAG)
16463: LOOP
16978: l_user_attribute_value VARCHAR2(4000);
16979: l_new_element_id VARCHAR2(255);
16980: l_target_model_path VARCHAR2(4000);
16981: l_name VARCHAR2(4000);
16982: l_ui_node CZ_UI_PAGE_ELEMENTS%ROWTYPE;
16983: l_model_ref_expl_id NUMBER;
16984: l_num_copy NUMBER;
16985: l_id NUMBER;
16986:
17017: l_user_attribute_value := get_Attribute_Value(p_xml_node, G_USER_ATTRIBUTE1_NAME);
17018:
17019: IF l_user_attribute_value IS NOT NULL AND l_new_element_id IS NOT NULL THEN
17020:
17021: SELECT * INTO l_ui_node FROM CZ_UI_PAGE_ELEMENTS
17022: WHERE ui_def_id=p_target_ui_def_id AND
17023: page_id=p_target_ui_page_id AND
17024: element_id=l_new_element_id;
17025: SELECT model_ref_expl_id INTO l_model_ref_expl_id FROM CZ_UI_PAGE_ELEMENTS
17021: SELECT * INTO l_ui_node FROM CZ_UI_PAGE_ELEMENTS
17022: WHERE ui_def_id=p_target_ui_def_id AND
17023: page_id=p_target_ui_page_id AND
17024: element_id=l_new_element_id;
17025: SELECT model_ref_expl_id INTO l_model_ref_expl_id FROM CZ_UI_PAGE_ELEMENTS
17026: WHERE ui_def_id=l_ui_node.ui_def_id AND page_id=l_ui_node.page_id AND
17027: parent_element_id IS NULL AND deleted_flag NOT IN(G_YES_FLAG,G_MARK_TO_DELETE);
17028: l_target_model_path := CZ_DEVELOPER_UTILS_PVT.runtime_relative_path(p_base_expl_id => l_model_ref_expl_id,
17029: p_base_pers_id => l_ui_node.pagebase_persistent_node_id,
17062: IF l_user_attribute_value IS NOT NULL THEN
17063:
17064: l_name := get_User_Attribute(l_user_attribute_value ,'name');
17065:
17066: SELECT COUNT(*)+1 INTO l_num_copy FROM CZ_UI_PAGE_ELEMENTS
17067: WHERE ui_def_id=p_target_ui_def_id AND page_id=p_target_ui_page_id AND
17068: name like l_name||'%' AND deleted_flag=G_NO_FLAG;
17069:
17070: l_name := l_name||' ('||TO_CHAR(l_num_copy)||')';
17078: l_user_attribute_value);
17079: END IF;
17080:
17081: IF l_new_element_id IS NOT NULL THEN
17082: UPDATE CZ_UI_PAGE_ELEMENTS
17083: SET name=l_name
17084: WHERE ui_def_id=p_target_ui_def_id AND page_id=p_target_ui_page_id AND
17085: element_id = l_new_element_id;
17086: END IF;
17269: l_target_persistent_node_id NUMBER;
17270:
17271: BEGIN
17272:
17273: UPDATE CZ_UI_PAGE_ELEMENTS
17274: SET target_page_ui_def_id=NULL,
17275: target_page_id=NULL
17276: WHERE ui_def_id=p_ui_def_id AND
17277: page_id=p_page_id AND
17304: -- Find all Page Include Regions of current UI
17305: --
17306: FOR i IN (SELECT page_id, element_id, target_page_ui_def_id, target_page_id,
17307: model_ref_expl_id, persistent_node_id, name
17308: FROM CZ_UI_PAGE_ELEMENTS
17309: WHERE ui_def_id = p_ui_def_id AND page_id=p_page_id AND
17310: element_signature_id = G_PAGE_INCL_REGION_SIGNATURE AND
17311: target_page_ui_def_id IS NOT NULL AND target_page_id IS NOT NULL AND
17312: deleted_flag = '0')
17321: EXCEPTION
17322: -- target page not exist
17323: WHEN NO_DATA_FOUND THEN
17324: -- l_target_persistent_node_id := NULL;
17325: UPDATE CZ_UI_PAGE_ELEMENTS
17326: SET target_page_ui_def_id = NULL, target_page_id = NULL
17327: WHERE ui_def_id = p_ui_def_id AND
17328: page_id = i.page_id AND element_id = i.element_id;
17329:
17357: p_token_value1 => NVL(i.NAME, i.element_id),
17358: p_token_name2 => 'PAGE_NAME',
17359: p_token_value2 => get_page_name(p_ui_def_id,i.page_id),
17360: p_fatal_error => FALSE);
17361: UPDATE CZ_UI_PAGE_ELEMENTS
17362: SET target_page_ui_def_id = NULL, target_page_id = NULL
17363: WHERE ui_def_id = p_ui_def_id AND
17364: page_id = i.page_id AND element_id = i.element_id;
17365: END IF;
17385:
17386: l_child_nodes_tbl xmldom.DOMNodeList;
17387: l_child_xml_node xmldom.DOMNode;
17388: l_parent_xml_node xmldom.DOMNode;
17389: l_ui_node CZ_UI_PAGE_ELEMENTS%ROWTYPE;
17390:
17391: l_user_attribute_value VARCHAR2(4000);
17392: l_user_attribute3_value VARCHAR2(4000);
17393:
17500: END IF;
17501:
17502: END IF;
17503:
17504: FOR i IN(SELECT parent_element_id FROM CZ_UI_PAGE_ELEMENTS
17505: WHERE ui_def_id=p_source_ui_def_id AND
17506: page_id=p_source_ui_page_id AND
17507: element_id=l_current_element_id)
17508: LOOP
17522: l_parent_element_id := p_parent_element_id;
17523: END IF;
17524:
17525: IF l_ui_page_elements_exists THEN
17526: INSERT INTO CZ_UI_PAGE_ELEMENTS
17527: (ui_def_id,
17528: persistent_node_id,
17529: parent_persistent_node_id,
17530: region_persistent_node_id,
17564: suppress_refresh_flag,
17565: deleted_flag,
17566: target_page_ui_def_id,
17567: target_page_id
17568: FROM CZ_UI_PAGE_ELEMENTS
17569: WHERE ui_def_id=p_source_ui_def_id AND
17570: page_id=p_source_ui_page_id AND
17571: element_id=l_current_element_id;
17572:
17633: l_user_attribute_value := get_Attribute_Value(p_xml_node, G_USER_ATTRIBUTE1_NAME);
17634:
17635: IF l_user_attribute_value IS NOT NULL AND l_ui_page_elements_exists THEN
17636:
17637: SELECT * INTO l_ui_node FROM CZ_UI_PAGE_ELEMENTS
17638: WHERE ui_def_id=p_target_ui_def_id AND
17639: page_id=p_target_ui_page_id AND
17640: element_id=l_new_element_id;
17641:
17638: WHERE ui_def_id=p_target_ui_def_id AND
17639: page_id=p_target_ui_page_id AND
17640: element_id=l_new_element_id;
17641:
17642: SELECT model_ref_expl_id INTO l_model_ref_expl_id FROM CZ_UI_PAGE_ELEMENTS
17643: WHERE ui_def_id=p_target_ui_def_id AND page_id=p_target_ui_page_id AND
17644: parent_element_id IS NULL AND deleted_flag NOT IN(G_YES_FLAG,G_LIMBO_FLAG,G_MARK_TO_DELETE);
17645:
17646: l_target_model_path := CZ_DEVELOPER_UTILS_PVT.runtime_relative_path(p_base_expl_id => l_model_ref_expl_id,
17662:
17663: IF l_user_attribute_value IS NOT NULL THEN
17664:
17665: SELECT COUNT(element_id) INTO l_view_counter
17666: FROM CZ_UI_PAGE_ELEMENTS
17667: WHERE ui_def_id=p_target_ui_def_id AND page_id=p_target_ui_page_id AND
17668: deleted_flag NOT IN(G_YES_FLAG,G_MARK_TO_DELETE);
17669:
17670: l_view_name := get_User_Attribute(l_user_attribute_value ,'nodeView');
17697: IF l_user_attribute_value IS NOT NULL THEN
17698:
17699: l_name := get_User_Attribute(l_user_attribute_value ,'name');
17700:
17701: SELECT COUNT(*)+1 INTO l_num_copy FROM CZ_UI_PAGE_ELEMENTS
17702: WHERE ui_def_id=p_target_ui_def_id AND page_id=p_target_ui_page_id AND
17703: name like l_name||'%' AND deleted_flag=G_NO_FLAG;
17704:
17705: l_name := l_name||' ('||TO_CHAR(l_num_copy)||')';
17713: l_user_attribute_value);
17714: END IF;
17715:
17716: IF l_new_element_id IS NOT NULL THEN
17717: UPDATE CZ_UI_PAGE_ELEMENTS
17718: SET name=l_name
17719: WHERE ui_def_id=p_target_ui_def_id AND page_id=p_target_ui_page_id AND
17720: element_id = l_new_element_id;
17721: END IF;
17804: DEBUG('copy_User_Attributes() : '||SQLERRM);
17805: END copy_User_Attributes;
17806:
17807: --
17808: -- This procedure sets/propogates deleted_flag='1' from a given UI element to its subtree in CZ_UI_PAGE_ELEMENTS table.
17809: -- Also the procedure parses the corresponding XML to collect all caption intl_text_ids, UI condtion rules ids of
17810: -- deleted UI elements and then performs a soft delete ( set deleted_flag='1' ) of corresponding records
17811: -- in tables CZ_LOCALIZED_TEXTS and CZ_RULES which have seeded_flag='0'.
17812: -- If parameter p_delete_xml = '1' then it also deletes a corresponding XML elements.
17824: l_element_id_tbl varchar_tbl_type;
17825: l_out_node xmldom.DOMNode;
17826: l_parent_node xmldom.DOMNode;
17827: l_page_ref_id CZ_UI_PAGE_REFS.page_ref_id%TYPE;
17828: l_parent_element_id CZ_UI_PAGE_ELEMENTS.parent_element_id%TYPE;
17829: l_jrad_doc CZ_UI_PAGES.jrad_doc%TYPE;
17830: l_page_ref_type CZ_UI_PAGE_REFS.page_ref_type%TYPE;
17831: l_ui_context CZ_UI_DEFS%ROWTYPE;
17832: l_condition_id NUMBER;
17850:
17851: --
17852: -- propogate deleted_flag in UI subtree
17853: --
17854: UPDATE CZ_UI_PAGE_ELEMENTS
17855: SET deleted_flag=G_LIMBO_FLAG
17856: WHERE (ui_def_id,page_id,element_id) IN
17857: (SELECT ui_def_id,page_id,element_id FROM CZ_UI_PAGE_ELEMENTS
17858: START WITH ui_def_id=p_ui_def_id AND page_id=p_ui_page_id AND element_id=p_element_id
17853: --
17854: UPDATE CZ_UI_PAGE_ELEMENTS
17855: SET deleted_flag=G_LIMBO_FLAG
17856: WHERE (ui_def_id,page_id,element_id) IN
17857: (SELECT ui_def_id,page_id,element_id FROM CZ_UI_PAGE_ELEMENTS
17858: START WITH ui_def_id=p_ui_def_id AND page_id=p_ui_page_id AND element_id=p_element_id
17859: CONNECT BY PRIOR ui_def_id=p_ui_def_id AND
17860: PRIOR page_id=p_ui_page_id AND page_id=p_ui_page_id AND
17861: PRIOR element_id=parent_element_id AND
17869: END IF;
17870:
17871: SELECT parent_element_id
17872: INTO l_parent_element_id
17873: FROM CZ_UI_PAGE_ELEMENTS
17874: WHERE ui_def_id=p_ui_def_id AND
17875: page_id=p_ui_page_id AND
17876: element_id=p_element_id;
17877:
18039: x_msg_count OUT NOCOPY NUMBER, -- number of error messages
18040: x_msg_data OUT NOCOPY VARCHAR2 -- string which contains error messages
18041: ) IS
18042:
18043: l_element_id CZ_UI_PAGE_ELEMENTS.element_id%TYPE;
18044:
18045: BEGIN
18046:
18047: --
18051:
18052: --
18053: -- get element_id of root element of UI page
18054: --
18055: FOR i IN(SELECT element_id FROM CZ_UI_PAGE_ELEMENTS
18056: WHERE ui_def_id=p_ui_def_id AND page_id=p_ui_page_id AND
18057: parent_element_id IS NULL AND deleted_flag=G_NO_FLAG)
18058: LOOP
18059: --
18069: x_msg_data => x_msg_data);
18070: END LOOP;
18071:
18072: -- handle page include region
18073: UPDATE cz_ui_page_elements
18074: SET target_page_ui_def_id = NULL, target_page_id = NULL
18075: WHERE target_page_ui_def_id = p_ui_def_id AND target_page_id = p_ui_page_id AND
18076: deleted_flag = '0' AND element_signature_id = G_PAGE_INCL_REGION_SIGNATURE;
18077: EXCEPTION
18437: l_source_jrad_doc CZ_UI_PAGES.jrad_doc%TYPE;
18438: l_target_jrad_doc CZ_UI_PAGES.jrad_doc%TYPE;
18439: l_xml_uicont_node xmldom.DOMNode;
18440: l_xml_new_node xmldom.DOMNode;
18441: l_amn_parent_element_id CZ_UI_PAGE_ELEMENTS.element_id%TYPE;
18442: l_pagebase_persistent_node_id NUMBER;
18443: l_length NUMBER;
18444: l_caseid_to_copy BOOLEAN;
18445:
18522: END IF;
18523:
18524: BEGIN
18525: SELECT element_id INTO l_amn_parent_element_id
18526: FROM CZ_UI_PAGE_ELEMENTS
18527: WHERE ui_def_id=p_target_ui_def_id AND
18528: page_id=p_target_ui_page_id AND
18529: element_id=p_target_parent_element_id;
18530: EXCEPTION
18685:
18686: set_Local_UI_Context(p_target_ui_def_id);
18687:
18688: SELECT element_id INTO l_source_element_id
18689: FROM CZ_UI_PAGE_ELEMENTS
18690: WHERE ui_def_id=p_source_ui_def_id AND page_id=p_source_ui_page_id AND
18691: parent_element_id IS NULL AND deleted_flag=G_NO_FLAG;
18692:
18693: --
19534: l_uicase_name VARCHAR2(255);
19535: l_child_nodes_tbl xmldom.DOMNodeList;
19536: l_template_jrad_doc CZ_UI_PAGES.jrad_doc%TYPE;
19537: l_jrad_doc CZ_UI_PAGES.jrad_doc%TYPE;
19538: l_ui_node CZ_UI_PAGE_ELEMENTS%ROWTYPE;
19539: l_attribute_value VARCHAR2(255);
19540: l_length NUMBER;
19541: l_needs_to_be_unlocked BOOLEAN;
19542:
20073: l_parent_xml_node xmldom.DOMNode;
20074: l_child_nodes_tbl xmldom.DOMNodeList;
20075: l_template_jrad_doc CZ_UI_PAGES.jrad_doc%TYPE;
20076: l_jrad_doc CZ_UI_PAGES.jrad_doc%TYPE;
20077: l_ui_node CZ_UI_PAGE_ELEMENTS%ROWTYPE;
20078: l_node_map_tbl xmldom.DOMNamedNodeMap;
20079: l_node_attr xmldom.DOMNode;
20080: l_prev_xml_node xmldom.DOMNode;
20081: l_root_attr_names_tbl varchar_tbl_type;
20153: p_ui_page_id => p_ui_page_id);
20154:
20155: IF l_ui_node.persistent_node_id IS NULL OR l_ui_node.persistent_node_id=0 THEN
20156: l_ui_node.element_id := l_ui_node.parent_element_id;
20157: UPDATE CZ_UI_PAGE_ELEMENTS
20158: SET deleted_flag=G_YES_FLAG
20159: WHERE ui_def_id=p_ui_def_id AND page_id=p_ui_page_id AND
20160: element_id=p_element_id;
20161: ELSE
20509: --
20510: PROCEDURE validate_UI_Conditions(p_ui_def_id IN NUMBER,
20511: p_is_parser_open IN VARCHAR2 DEFAULT NULL) IS
20512:
20513: l_element_id CZ_UI_PAGE_ELEMENTS.element_id%TYPE;
20514: l_page_id CZ_UI_PAGES.page_id%TYPE;
20515:
20516: BEGIN
20517: FOR i IN(SELECT rule_id,ui_page_id,ui_page_element_id,rule_type FROM CZ_RULES a
20521:
20522: BEGIN
20523:
20524: IF i.ui_page_element_id IS NOT NULL AND i.ui_page_element_id<>'0' THEN
20525: SELECT element_id INTO l_element_id FROM CZ_UI_PAGE_ELEMENTS
20526: WHERE ui_def_id=p_ui_def_id AND page_id=i.ui_page_id AND
20527: element_id=i.ui_page_element_id AND deleted_flag NOT IN(G_YES_FLAG,G_LIMBO_FLAG,G_MARK_TO_DELETE);
20528: ELSIF (i.ui_page_element_id IS NULL OR i.ui_page_element_id='0') AND
20529: (i.ui_page_id IS NOT NULL AND i.ui_page_id<>0) THEN
20526: WHERE ui_def_id=p_ui_def_id AND page_id=i.ui_page_id AND
20527: element_id=i.ui_page_element_id AND deleted_flag NOT IN(G_YES_FLAG,G_LIMBO_FLAG,G_MARK_TO_DELETE);
20528: ELSIF (i.ui_page_element_id IS NULL OR i.ui_page_element_id='0') AND
20529: (i.ui_page_id IS NOT NULL AND i.ui_page_id<>0) THEN
20530: SELECT element_id INTO l_element_id FROM CZ_UI_PAGE_ELEMENTS
20531: WHERE ui_def_id=p_ui_def_id AND page_id=i.ui_page_id AND
20532: parent_element_id IS NULL AND deleted_flag NOT IN(G_YES_FLAG,G_LIMBO_FLAG,G_MARK_TO_DELETE) AND rownum<2;
20533: SELECT page_id INTO l_page_id FROM CZ_UI_PAGES
20534: WHERE page_id=i.ui_page_id AND ui_def_id=p_ui_def_id AND deleted_flag NOT IN(G_YES_FLAG,G_LIMBO_FLAG,G_MARK_TO_DELETE);
20707: SELECT ref_ui_def_id INTO l_old_child_ui_def_id
20708: FROM cz_ui_refs
20709: WHERE ui_def_id = p_ui_def_id AND ref_persistent_node_id = p_ref_persistent_node_id;
20710:
20711: UPDATE cz_ui_page_elements
20712: SET target_page_ui_def_id = NULL, target_page_id = NULL
20713: WHERE deleted_flag = '0' AND target_page_ui_def_id = l_old_child_ui_def_id AND
20714: target_page_id IN (SELECT page_id FROM cz_ui_pages
20715: WHERE ui_def_id = l_old_child_ui_def_id AND deleted_flag = '0') AND
20805: STATUS => l_status,
20806: INDUSTRY => l_industry,
20807: ORACLE_SCHEMA => l_oracle_schema);
20808:
20809: g_UINodeINCREMENT := get_Seq_Inc('CZ_UI_PAGE_ELEMENTS_S', l_oracle_schema);
20810: g_PageRefINCREMENT := get_Seq_Inc('CZ_UI_PAGE_REFS_S', l_oracle_schema);
20811: g_PageINCREMENT := get_Seq_Inc('CZ_UI_PAGES_S', l_oracle_schema);
20812: g_PageSetINCREMENT := get_Seq_Inc('CZ_UI_PAGE_SETS_S', l_oracle_schema);
20813: g_UIActionINCREMENT := get_Seq_Inc('CZ_UI_ACTIONS_S', l_oracle_schema);