summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRachitha Ramappa <rachitha.ramappa@att.com>2020-07-02 12:56:08 +0530
committerMuni Mohan Kunchi <munmohan@att.com>2020-07-17 16:48:53 -0400
commita36db1a18f3d5117517313ba035e2384e00cc0a7 (patch)
treeb3424bdf4d6c6479ef30251a281eb1339f4d9af9
parentd856cbc5d725836a07776b0f20f06bbbda7b5412 (diff)
Portal Non-Gui application onboarding changes
Change-Id: Ib878398995e1d7a407d44ea6113c05aab2dd1625 Issue-ID: PORTAL-935 Signed-off-by: Muni Mohan Kunchi <munmohan@att.com>
-rw-r--r--ecomp-portal-DB-common/PortalDDLMySql_3_3_Common.sql1782
-rw-r--r--ecomp-portal-DB-os/PortalMySql_3_3_Add.sql15
-rw-r--r--ecomp-portal-DB-os/PortalMySql_3_3_Remove.sql10
-rw-r--r--ecomp-portal-DB-os/README.md4
-rw-r--r--portal-FE-common/src/app/pages/dashboard-widget-catalog/dashboard-widget-catalog.component.ts4
-rw-r--r--portal-FE-os/src/app/pages/application-onboarding/application-details-dialog/application-details-dialog.component.html471
-rw-r--r--portal-FE-os/src/app/pages/application-onboarding/application-details-dialog/application-details-dialog.component.scss40
-rw-r--r--portal-FE-os/src/app/pages/application-onboarding/application-details-dialog/application-details-dialog.component.spec.ts28
-rw-r--r--portal-FE-os/src/app/pages/application-onboarding/application-details-dialog/application-details-dialog.component.ts237
-rw-r--r--portal-FE-os/src/app/pages/application-onboarding/application-onboarding.component.html41
-rw-r--r--portal-FE-os/src/app/pages/application-onboarding/application-onboarding.component.ts8
-rw-r--r--portal-FE-os/src/app/pages/information-tooltip/information-tooltip.component.html3
-rw-r--r--portal-FE-os/src/app/pages/information-tooltip/information-tooltip.component.scss13
-rw-r--r--portal-FE-os/src/app/pages/information-tooltip/information-tooltip.component.spec.ts8
-rw-r--r--portal-FE-os/src/app/pages/information-tooltip/information-tooltip.component.ts19
-rw-r--r--portal-FE-os/src/app/pages/pages.module.ts14
16 files changed, 2379 insertions, 318 deletions
diff --git a/ecomp-portal-DB-common/PortalDDLMySql_3_3_Common.sql b/ecomp-portal-DB-common/PortalDDLMySql_3_3_Common.sql
new file mode 100644
index 00000000..180f1f69
--- /dev/null
+++ b/ecomp-portal-DB-common/PortalDDLMySql_3_3_Common.sql
@@ -0,0 +1,1782 @@
+-- ---------------------------------------------------------------------------------------------------------------
+-- This is the 3.2.0 version of Portal database called portal
+
+-- note to : database admin, set the mysql system variable called lower_case_table_names
+-- it can be set 3 different ways:
+-- command-line options (cmd-line),
+-- options valid in configuration files (option file), or
+-- server system variables (system var).
+
+-- it needs to be set to 1, then table names are stored in lowercase on disk and comparisons are not case sensitive.
+-- -----------------------------------------------------------------------------------------------------------------
+set foreign_key_checks=1;
+
+SET GLOBAL character_set_client = utf8;
+SET GLOBAL character_set_connection = utf8;
+SET GLOBAL character_set_database = utf8;
+SET GLOBAL character_set_results = utf8;
+SET GLOBAL character_set_server = utf8;
+
+create database portal;
+
+use portal;
+
+-- ------------------ create table section
+--
+-- name: cr_favorite_reports; type: table
+--
+create table cr_favorite_reports (
+ user_id integer not null,
+ rep_id integer not null
+);
+--
+-- name: cr_filehist_log; type: table
+--
+create table cr_filehist_log (
+ schedule_id numeric(11,0) not null,
+ url character varying(4000),
+ notes character varying(3500),
+ run_time timestamp
+);
+--
+-- name: cr_folder; type: table
+--
+create table cr_folder (
+ folder_id integer not null,
+ folder_name character varying(50) not null,
+ descr character varying(500),
+ create_id integer not null,
+ create_date timestamp not null,
+ parent_folder_id integer,
+ public_yn character varying(1) default 'n' not null
+);
+--
+-- name: cr_folder_access; type: table
+--
+create table cr_folder_access (
+ folder_access_id numeric(11,0) not null,
+ folder_id numeric(11,0) not null,
+ order_no numeric(11,0) not null,
+ role_id numeric(11,0),
+ user_id numeric(11,0),
+ read_only_yn character varying(1) default 'n' not null
+);
+--
+-- name: cr_hist_user_map; type: table
+--
+create table cr_hist_user_map (
+ hist_id int(11) not null,
+ user_id int(11) not null
+);
+--
+-- name: cr_lu_file_type; type: table
+--
+create table cr_lu_file_type (
+ lookup_id numeric(2,0) not null,
+ lookup_descr character varying(255) not null,
+ active_yn character(1) default 'y',
+ error_code numeric(11,0)
+);
+--
+-- name: cr_raptor_action_img; type: table
+--
+create table cr_raptor_action_img (
+ image_id character varying(100) not null,
+ image_loc character varying(400)
+);
+--
+-- name: cr_raptor_pdf_img; type: table
+--
+create table cr_raptor_pdf_img (
+ image_id character varying(100) not null,
+ image_loc character varying(400)
+);
+--
+-- name: cr_remote_schema_info; type: table
+--
+create table cr_remote_schema_info (
+ schema_prefix character varying(5) not null,
+ schema_desc character varying(75) not null,
+ datasource_type character varying(100)
+);
+--
+-- name: cr_report; type: table
+--
+create table cr_report (
+ rep_id numeric(11,0) not null,
+ title character varying(100) not null,
+ descr character varying(255),
+ public_yn character varying(1) default 'n' not null,
+ report_xml text,
+ create_id numeric(11,0),
+ create_date timestamp default now(),
+ maint_id numeric(11,0),
+ maint_date timestamp default now(),
+ menu_id character varying(500),
+ menu_approved_yn character varying(1) default 'n' not null,
+ owner_id numeric(11,0),
+ folder_id integer default 0,
+ dashboard_type_yn character varying(1) default 'n',
+ dashboard_yn character varying(1) default 'n'
+);
+--
+-- name: cr_report_access; type: table
+--
+create table cr_report_access (
+ rep_id numeric(11,0) not null,
+ order_no numeric(11,0) not null,
+ role_id numeric(11,0),
+ user_id numeric(11,0),
+ read_only_yn character varying(1) default 'n' not null
+);
+--
+-- name: cr_report_dwnld_log; type: table
+--
+create table cr_report_dwnld_log (
+ user_id numeric(11,0) not null,
+ rep_id integer not null,
+ file_name character varying(100) not null,
+ dwnld_start_time timestamp default now() not null,
+ record_ready_time timestamp default now(),
+ filter_params character varying(2000)
+);
+--
+-- name: cr_report_email_sent_log; type: table
+--
+create table cr_report_email_sent_log (
+ log_id integer not null,
+ schedule_id numeric(11,0),
+ gen_key character varying(25) not null,
+ rep_id numeric(11,0) not null,
+ user_id numeric(11,0),
+ sent_date timestamp default now(),
+ access_flag character varying(1) default 'y' not null,
+ touch_date timestamp default now()
+);
+--
+-- name: cr_report_file_history; type: table
+--
+create table cr_report_file_history (
+ hist_id int(11) not null,
+ sched_user_id numeric(11,0) not null,
+ schedule_id numeric(11,0) not null,
+ user_id numeric(11,0) not null,
+ rep_id numeric(11,0),
+ run_date timestamp,
+ recurrence character varying(50),
+ file_type_id numeric(2,0),
+ file_name character varying(80),
+ file_blob blob,
+ file_size numeric(11,0),
+ raptor_url character varying(4000),
+ error_yn character(1) default 'n',
+ error_code numeric(11,0),
+ deleted_yn character(1) default 'n',
+ deleted_by numeric(38,0)
+);
+--
+-- name: cr_report_log; type: table
+--
+create table cr_report_log (
+ rep_id numeric(11,0) not null,
+ log_time timestamp not null,
+ user_id numeric(11,0) not null,
+ action character varying(2000) not null,
+ action_value character varying(50),
+ form_fields character varying(4000)
+);
+--
+-- name: cr_report_schedule; type: table
+--
+create table cr_report_schedule (
+ schedule_id numeric(11,0) not null,
+ sched_user_id numeric(11,0) not null,
+ rep_id numeric(11,0) not null,
+ enabled_yn character varying(1) not null,
+ start_date timestamp default now(),
+ end_date timestamp default now(),
+ run_date timestamp default now(),
+ recurrence character varying(50),
+ conditional_yn character varying(1) not null,
+ condition_sql character varying(4000),
+ notify_type integer default 0,
+ max_row integer default 1000,
+ initial_formfields character varying(3500),
+ processed_formfields character varying(3500),
+ formfields character varying(3500),
+ condition_large_sql text,
+ encrypt_yn character(1) default 'n',
+ attachment_yn character(1) default 'y'
+);
+--
+-- name: cr_report_schedule_users; type: table
+--
+create table cr_report_schedule_users (
+ schedule_id numeric(11,0) not null,
+ rep_id numeric(11,0) not null,
+ user_id numeric(11,0) not null,
+ role_id numeric(11,0),
+ order_no numeric(11,0) not null
+);
+--
+-- name: cr_report_template_map; type: table
+--
+create table cr_report_template_map (
+ report_id integer not null,
+ template_file character varying(200)
+);
+--
+-- name: cr_schedule_activity_log; type: table
+--
+create table cr_schedule_activity_log (
+ schedule_id numeric(11,0) not null,
+ url character varying(4000),
+ notes character varying(2000),
+ run_time timestamp
+);
+--
+-- name: cr_table_join; type: table
+--
+create table cr_table_join (
+ src_table_name character varying(30) not null,
+ dest_table_name character varying(30) not null,
+ join_expr character varying(500) not null
+);
+--
+-- name: cr_table_role; type: table
+--
+create table cr_table_role (
+ table_name character varying(30) not null,
+ role_id numeric(11,0) not null
+);
+--
+-- name: cr_table_source; type: table
+--
+create table cr_table_source (
+ table_name character varying(30) not null,
+ display_name character varying(30) not null,
+ pk_fields character varying(200),
+ web_view_action character varying(50),
+ large_data_source_yn character varying(1) default 'n' not null,
+ filter_sql character varying(4000),
+ source_db character varying(50)
+);
+--
+-- name: fn_lu_timezone; type: table
+--
+create table fn_lu_timezone (
+ timezone_id int(11) not null,
+ timezone_name character varying(100) not null,
+ timezone_value character varying(100) not null
+);
+
+create table fn_user (
+ user_id int(11) not null primary key auto_increment,
+ org_id int(11),
+ manager_id int(11),
+ first_name character varying(50),
+ middle_name character varying(50),
+ last_name character varying(50),
+ phone character varying(25),
+ fax character varying(25),
+ cellular character varying(25),
+ email character varying(50),
+ address_id numeric(11,0),
+ alert_method_cd character varying(10),
+ hrid character varying(20),
+ org_user_id CHARACTER VARYING(60),
+ org_code character varying(30),
+ login_id character varying(60),
+ login_pwd character varying(100),
+ last_login_date timestamp,
+ active_yn character varying(1) default 'y' not null,
+ created_id int(11),
+ created_date timestamp default now(),
+ modified_id int(11),
+ modified_date timestamp default now(),
+ is_internal_yn character(1) default 'n' not null,
+ address_line_1 character varying(100),
+ address_line_2 character varying(100),
+ city character varying(50),
+ state_cd character varying(3),
+ zip_code character varying(11),
+ country_cd character varying(3),
+ location_clli character varying(8),
+ org_manager_userid CHARACTER VARYING(20),
+ company character varying(100),
+ department_name character varying(100),
+ job_title character varying(100),
+ timezone int(11),
+ department character varying(25),
+ business_unit character varying(25),
+ business_unit_name character varying(100),
+ cost_center character varying(25),
+ fin_loc_code character varying(10),
+ silo_status character varying(10),
+ is_system_user character(1) default 'N',
+ language_id int(2) default 1
+);
+
+create table fn_language(
+ language_id int(11) PRIMARY KEY NOT NULL AUTO_INCREMENT,
+ language_name VARCHAR(100) NOT NULL,
+ language_alias VARCHAR(100) NOT NULL
+);
+
+create table fn_display_text(
+ id int(11) PRIMARY KEY NOT NULL AUTO_INCREMENT,
+ language_id int(11) NOT NULL,
+ text_id int(11) NOT NULL,
+ text_label VARCHAR(100) NOT NULL
+);
+--
+-- name: fn_role; type: table
+--
+create table fn_role (
+ role_id int(11) not null primary key auto_increment,
+ role_name character varying(300) not null,
+ active_yn character varying(1) default 'y' not null,
+ priority numeric(4,0),
+ app_id int(11) default null,
+ app_role_id int(11) default null
+
+);
+--
+-- name: fn_audit_action; type: table
+--
+create table fn_audit_action (
+ audit_action_id integer not null,
+ class_name character varying(500) not null,
+ method_name character varying(50) not null,
+ audit_action_cd character varying(20) not null,
+ audit_action_desc character varying(200),
+ active_yn character varying(1)
+);
+--
+-- name: fn_audit_action_log; type: table
+--
+create table fn_audit_action_log (
+ audit_log_id integer not null primary key auto_increment,
+ audit_action_cd character varying(200),
+ action_time timestamp,
+ user_id numeric(11,0),
+ class_name character varying(100),
+ method_name character varying(50),
+ success_msg character varying(20),
+ error_msg character varying(500)
+);
+--
+-- name: fn_lu_activity; type: table
+--
+create table fn_lu_activity (
+ activity_cd character varying(50) not null primary key,
+ activity character varying(50) not null
+);
+--
+-- name: fn_audit_log; type: table
+--
+create table fn_audit_log (
+ log_id int(11) not null primary key auto_increment,
+ user_id int(11) not null,
+ activity_cd character varying(50) not null,
+ audit_date timestamp default now() not null,
+ comments character varying(1000),
+ affected_record_id_bk character varying(500),
+ affected_record_id character varying(4000),
+ constraint fk_fn_audit_ref_209_fn_user foreign key (user_id) references fn_user(user_id)
+);
+--
+-- name: fn_broadcast_message; type: table
+--
+create table fn_broadcast_message (
+ message_id int(11) not null primary key auto_increment,
+ message_text character varying(1000) not null,
+ message_location_id numeric(11,0) not null,
+ broadcast_start_date timestamp not null default now(),
+ broadcast_end_date timestamp not null default now(),
+ active_yn character(1) default 'y' not null,
+ sort_order numeric(4,0) not null,
+ broadcast_site_cd character varying(50)
+);
+--
+-- name: fn_chat_logs; type: table
+--
+create table fn_chat_logs (
+ chat_log_id integer not null,
+ chat_room_id integer,
+ user_id integer,
+ message character varying(1000),
+ message_date_time timestamp
+);
+--
+-- name: fn_chat_room; type: table
+--
+create table fn_chat_room (
+ chat_room_id integer not null,
+ name character varying(50) not null,
+ description character varying(500),
+ owner_id integer,
+ created_date timestamp default now(),
+ updated_date timestamp default now()
+);
+--
+-- name: fn_chat_users; type: table
+--
+create table fn_chat_users (
+ chat_room_id integer,
+ user_id integer,
+ last_activity_date_time timestamp,
+ chat_status character varying(20),
+ id integer not null
+);
+--
+-- name: fn_datasource; type: table
+--
+create table fn_datasource (
+ id integer not null primary key auto_increment,
+ name character varying(50),
+ driver_name character varying(256),
+ server character varying(256),
+ port integer,
+ user_name character varying(256),
+ password character varying(256),
+ url character varying(256),
+ min_pool_size integer,
+ max_pool_size integer,
+ adapter_id integer,
+ ds_type character varying(20)
+);
+--
+-- name: fn_function; type: table
+--
+create table fn_function (
+ function_cd character varying(30) not null primary key,
+ function_name character varying(50) not null
+);
+--
+-- name: fn_lu_alert_method; type: table
+--
+create table fn_lu_alert_method (
+ alert_method_cd character varying(10) not null,
+ alert_method character varying(50) not null
+);
+--
+-- name: fn_lu_broadcast_site; type: table
+--
+create table fn_lu_broadcast_site (
+ broadcast_site_cd character varying(50) not null,
+ broadcast_site_descr character varying(100)
+);
+--
+-- name: fn_lu_menu_set; type: table
+--
+create table fn_lu_menu_set (
+ menu_set_cd character varying(10) not null primary key,
+ menu_set_name character varying(50) not null
+);
+--
+-- name: fn_lu_priority; type: table
+--
+create table fn_lu_priority (
+ priority_id numeric(11,0) not null,
+ priority character varying(50) not null,
+ active_yn character(1) not null,
+ sort_order numeric(5,0)
+);
+--
+-- name: fn_lu_role_type; type: table
+--
+create table fn_lu_role_type (
+ role_type_id numeric(11,0) not null,
+ role_type character varying(50) not null
+);
+--
+-- name: fn_lu_tab_set; type: table
+--
+create table fn_lu_tab_set (
+ tab_set_cd character varying(30) not null,
+ tab_set_name character varying(50) not null
+);
+--
+-- name: fn_menu; type: table
+--
+create table fn_menu (
+ menu_id int(11) not null primary key auto_increment,
+ label character varying(100),
+ parent_id int(11),
+ sort_order numeric(4,0),
+ action character varying(200),
+ function_cd character varying(30),
+ active_yn character varying(1) default 'y' not null,
+ servlet character varying(50),
+ query_string character varying(200),
+ external_url character varying(200),
+ target character varying(25),
+ menu_set_cd character varying(10) default 'app',
+ separator_yn character(1) default 'n',
+ image_src character varying(100),
+ constraint fk_fn_menu_ref_196_fn_menu foreign key (parent_id) references fn_menu(menu_id),
+ constraint fk_fn_menu_menu_set_cd foreign key (menu_set_cd) references fn_lu_menu_set(menu_set_cd)
+);
+
+create index idx_fn_menu_label on fn_menu(label);
+--
+-- name: fn_org; type: table
+--
+create table fn_org (
+ org_id int(11) not null,
+ org_name character varying(50) not null,
+ access_cd character varying(10)
+);
+--
+-- name: fn_restricted_url; type: table
+--
+create table fn_restricted_url (
+ restricted_url character varying(250) not null,
+ function_cd character varying(30) not null
+);
+--
+-- name: fn_role_composite; type: table
+--
+create table fn_role_composite (
+ parent_role_id int(11) not null,
+ child_role_id int(11) not null,
+ constraint fk_fn_role_composite_child foreign key (child_role_id) references fn_role(role_id),
+ constraint fk_fn_role_composite_parent foreign key (parent_role_id) references fn_role(role_id)
+);
+--
+-- name: fn_role_function; type: table
+--
+create table fn_role_function (
+ role_id int(11) not null,
+ function_cd character varying(30) not null,
+ constraint fk_fn_role__ref_198_fn_role foreign key (role_id) references fn_role(role_id)
+);
+--
+-- name: fn_tab; type: table
+--
+create table fn_tab (
+ tab_cd character varying(30) not null,
+ tab_name character varying(50) not null,
+ tab_descr character varying(100),
+ action character varying(100) not null,
+ function_cd character varying(30) not null,
+ active_yn character(1) not null,
+ sort_order numeric(11,0) not null,
+ parent_tab_cd character varying(30),
+ tab_set_cd character varying(30)
+);
+--
+-- name: fn_tab_selected; type: table
+--
+create table fn_tab_selected (
+ selected_tab_cd character varying(30) not null,
+ tab_uri character varying(40) not null
+);
+--
+-- name: fn_user_pseudo_role; type: table
+--
+create table fn_user_pseudo_role (
+ pseudo_role_id int(11) not null,
+ user_id int(11) not null
+);
+--
+-- name: fn_user_role; type: table
+--
+create table fn_user_role (
+ user_id int(10) not null,
+ role_id int(10) not null,
+ priority numeric(4,0),
+ app_id int(11) default 2,
+ constraint fk_fn_user__ref_172_fn_user foreign key (user_id) references fn_user(user_id),
+ constraint fk_fn_user__ref_175_fn_role foreign key (role_id) references fn_role(role_id)
+);
+--
+-- name: schema_info; type: table
+--
+create table schema_info (
+ SCHEMA_ID CHARACTER VARYING(25) not null,
+ SCHEMA_DESC CHARACTER VARYING(75) not null,
+ DATASOURCE_TYPE CHARACTER VARYING(100),
+ CONNECTION_URL VARCHAR(200) not null,
+ USER_NAME VARCHAR(45) not null,
+ PASSWORD VARCHAR(45) null default null,
+ DRIVER_CLASS VARCHAR(100) not null,
+ MIN_POOL_SIZE INT not null,
+ MAX_POOL_SIZE INT not null,
+ IDLE_CONNECTION_TEST_PERIOD INT not null
+
+);
+-- ----------------------------------------------------------
+-- name: fn_app; type: table
+-- ----------------------------------------------------------
+create table fn_app (
+ app_id int(11) primary key not null auto_increment,
+ app_name varchar(100) not null default '?',
+ app_image_url varchar(256) default null,
+ app_description varchar(512) default null,
+ app_notes varchar(4096) default null,
+ app_url varchar(256) default null,
+ app_alternate_url varchar(256) default null,
+ app_rest_endpoint varchar(2000) default null,
+ ml_app_name varchar(50) not null default '?',
+ ml_app_admin_id varchar(7) not null default '?',
+ mots_id int(11) default null,
+ app_password varchar(256) default null,
+ open char(1) default 'N',
+ enabled char(1) default 'Y',
+ thumbnail mediumblob null default null,
+ app_username varchar(50),
+ ueb_key varchar(256) default null,
+ ueb_secret varchar(256) default null,
+ ueb_topic_name varchar(256) default null,
+ uses_cadi char(1) default null,
+ ack_app char(1) default 'Y',
+ mode_of_integration varchar(50) default null,
+ app_type int(11) not null default 1,
+ auth_central char(1) not null default 'N',
+ auth_namespace varchar(100) null default null
+);
+
+-- ------------------ functional menu tables -------------------
+--
+-- table structure for table fn_menu_functional
+--
+create table fn_menu_functional (
+ menu_id int(11) not null auto_increment,
+ column_num int(2) not null,
+ text varchar(100) not null,
+ parent_menu_id int(11) default null,
+ url varchar(128) not null default '',
+ active_yn varchar(1) not null default 'y',
+ image_src varchar(100) default null,
+ primary key (menu_id),
+ key fk_fn_menu_func_parent_menu_id_idx (parent_menu_id),
+ constraint fk_fn_menu_func_parent_menu_id foreign key (parent_menu_id) references fn_menu_functional (menu_id) on delete no action on update no action
+);
+--
+-- table structure for table fn_menu_functional_ancestors
+--
+
+create table fn_menu_functional_ancestors (
+ id int(11) not null auto_increment,
+ menu_id int(11) not null,
+ ancestor_menu_id int(11) not null,
+ depth int(2) not null,
+ primary key (id),
+ key fk_fn_menu_func_anc_menu_id_idx (menu_id),
+ key fk_fn_menu_func_anc_anc_menu_id_idx (ancestor_menu_id),
+ constraint fk_fn_menu_func_anc_anc_menu_id foreign key (ancestor_menu_id) references fn_menu_functional (menu_id) on delete no action on update no action,
+ constraint fk_fn_menu_func_anc_menu_id foreign key (menu_id) references fn_menu_functional (menu_id) on delete no action on update no action
+);
+--
+-- table structure for table fn_menu_functional_roles
+--
+create table fn_menu_functional_roles (
+ id int(11) not null auto_increment,
+ menu_id int(11) not null,
+ app_id int(11) not null,
+ role_id int(10) not null,
+ primary key (id),
+ key fk_fn_menu_func_roles_menu_id_idx (menu_id),
+ key fk_fn_menu_func_roles_app_id_idx (app_id),
+ key fk_fn_menu_func_roles_role_id_idx (role_id),
+ constraint fk_fn_menu_func_roles_app_id foreign key (app_id) references fn_app (app_id) on delete no action on update no action,
+ constraint fk_fn_menu_func_roles_menu_id foreign key (menu_id) references fn_menu_functional (menu_id) on delete no action on update no action,
+ constraint fk_fn_menu_func_roles_role_id foreign key (role_id) references fn_role (role_id) on delete no action on update no action
+);
+-- ----------------------------------------------------------
+-- NAME: FN_WORKFLOW; TYPE: TABLE
+-- ----------------------------------------------------------
+create table fn_workflow (
+ id mediumint(9) not null auto_increment,
+ name varchar(20) not null,
+ description varchar(500) default null,
+ run_link varchar(300) default null,
+ suspend_link varchar(300) default null,
+ modified_link varchar(300) default null,
+ active_yn varchar(300) default null,
+ created varchar(300) default null,
+ created_by int(11) default null,
+ modified varchar(300) default null,
+ modified_by int(11) default null,
+ workflow_key varchar(50) default null,
+ primary key (id),
+ UNIQUE KEY name (name)
+);
+
+
+-- ----------------------------------------------------------
+-- NAME: FN_SCHEDULE_WORKFLOWS; TYPE: TABLE
+-- ----------------------------------------------------------
+create table fn_schedule_workflows (
+ id_schedule_workflows bigint(25) primary key not null auto_increment,
+ workflow_server_url varchar(45) default null,
+ workflow_key varchar(45) not null,
+ workflow_arguments varchar(45) default null,
+ startDateTimeCron varchar(45) default null,
+ endDateTime TIMESTAMP default NOW(),
+ start_date_time TIMESTAMP default NOW(),
+ recurrence varchar(45) default null
+ );
+
+
+-- ----------------------------------------------------------
+-- NAME: FN_SHARED_CONTEXT; TYPE: TABLE
+-- ----------------------------------------------------------
+create table fn_shared_context (
+ id int(11) not null auto_increment,
+ create_time timestamp not null,
+ context_id character varying(64) not null,
+ ckey character varying(128) not null,
+ cvalue character varying(1024),
+ primary key (id),
+ UNIQUE KEY session_key (context_id, ckey) );
+
+
+-- ----------------------------------------------------------
+-- NAME: FN_QZ_JOB_DETAILS; TYPE: TABLE
+-- ----------------------------------------------------------
+create table fn_qz_job_details (
+SCHED_NAME VARCHAR(120) not null,
+JOB_NAME VARCHAR(200) not null,
+JOB_GROUP VARCHAR(200) not null,
+DESCRIPTION VARCHAR(250) null,
+JOB_CLASS_NAME VARCHAR(250) not null,
+IS_DURABLE VARCHAR(1) not null,
+IS_NONCONCURRENT VARCHAR(1) not null,
+IS_UPDATE_DATA VARCHAR(1) not null,
+REQUESTS_RECOVERY VARCHAR(1) not null,
+JOB_DATA BLOB null,
+primary key (SCHED_NAME,JOB_NAME,JOB_GROUP)
+);
+
+-- ----------------------------------------------------------
+-- NAME: FN_QZ_TRIGGERS; TYPE: TABLE
+-- ----------------------------------------------------------
+create table fn_qz_triggers (
+SCHED_NAME VARCHAR(120) not null,
+TRIGGER_NAME VARCHAR(200) not null,
+TRIGGER_GROUP VARCHAR(200) not null,
+JOB_NAME VARCHAR(200) not null,
+JOB_GROUP VARCHAR(200) not null,
+DESCRIPTION VARCHAR(250) null,
+NEXT_FIRE_TIME BIGINT(13) null,
+PREV_FIRE_TIME BIGINT(13) null,
+PRIORITY INTEGER null,
+TRIGGER_STATE VARCHAR(16) not null,
+TRIGGER_TYPE VARCHAR(8) not null,
+START_TIME BIGINT(13) not null,
+END_TIME BIGINT(13) null,
+CALENDAR_NAME VARCHAR(200) null,
+MISFIRE_INSTR SMALLINT(2) null,
+JOB_DATA BLOB null,
+primary key (SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP),
+FOREIGN KEY (SCHED_NAME,JOB_NAME,JOB_GROUP)
+REFERENCES FN_QZ_JOB_DETAILS(SCHED_NAME,JOB_NAME,JOB_GROUP)
+);
+
+-- ----------------------------------------------------------
+-- NAME: FN_QZ_SIMPLE_TRIGGERS; TYPE: TABLE
+-- ----------------------------------------------------------
+create table fn_qz_simple_triggers (
+SCHED_NAME VARCHAR(120) not null,
+TRIGGER_NAME VARCHAR(200) not null,
+TRIGGER_GROUP VARCHAR(200) not null,
+REPEAT_COUNT BIGINT(7) not null,
+REPEAT_INTERVAL BIGINT(12) not null,
+TIMES_TRIGGERED BIGINT(10) not null,
+primary key (SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP),
+FOREIGN KEY (SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP)
+REFERENCES FN_QZ_TRIGGERS(SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP)
+);
+
+-- ----------------------------------------------------------
+-- NAME: FN_QZ_CRON_TRIGGERS; TYPE: TABLE
+-- ----------------------------------------------------------
+create table fn_qz_cron_triggers (
+SCHED_NAME VARCHAR(120) not null,
+TRIGGER_NAME VARCHAR(200) not null,
+TRIGGER_GROUP VARCHAR(200) not null,
+CRON_EXPRESSION VARCHAR(120) not null,
+TIME_ZONE_ID VARCHAR(80),
+primary key (SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP),
+FOREIGN KEY (SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP)
+REFERENCES FN_QZ_TRIGGERS(SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP)
+);
+
+-- ----------------------------------------------------------
+-- NAME: FN_QZ_SIMPROP_TRIGGERS; TYPE: TABLE
+-- ----------------------------------------------------------
+create table fn_qz_simprop_triggers (
+ SCHED_NAME VARCHAR(120) not null,
+ TRIGGER_NAME VARCHAR(200) not null,
+ TRIGGER_GROUP VARCHAR(200) not null,
+ STR_PROP_1 VARCHAR(512) null,
+ STR_PROP_2 VARCHAR(512) null,
+ STR_PROP_3 VARCHAR(512) null,
+ INT_PROP_1 INT null,
+ INT_PROP_2 INT null,
+ LONG_PROP_1 BIGINT null,
+ LONG_PROP_2 BIGINT null,
+ DEC_PROP_1 NUMERIC(13,4) null,
+ DEC_PROP_2 NUMERIC(13,4) null,
+ BOOL_PROP_1 VARCHAR(1) null,
+ BOOL_PROP_2 VARCHAR(1) null,
+ primary key (SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP),
+ FOREIGN KEY (SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP)
+ REFERENCES FN_QZ_TRIGGERS(SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP)
+);
+
+-- ----------------------------------------------------------
+-- NAME: FN_QZ_BLOB_TRIGGERS; TYPE: TABLE
+-- ----------------------------------------------------------
+create table fn_qz_blob_triggers (
+SCHED_NAME VARCHAR(120) not null,
+TRIGGER_NAME VARCHAR(200) not null,
+TRIGGER_GROUP VARCHAR(200) not null,
+BLOB_DATA BLOB null,
+primary key (SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP),
+INDEX (SCHED_NAME,TRIGGER_NAME, TRIGGER_GROUP),
+FOREIGN KEY (SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP)
+REFERENCES FN_QZ_TRIGGERS(SCHED_NAME,TRIGGER_NAME,TRIGGER_GROUP)
+);
+
+-- ----------------------------------------------------------
+-- NAME: FN_QZ_CALENDARS; TYPE: TABLE
+-- ----------------------------------------------------------
+create table fn_qz_calendars (
+SCHED_NAME VARCHAR(120) not null,
+CALENDAR_NAME VARCHAR(200) not null,
+CALENDAR BLOB not null,
+primary key (SCHED_NAME,CALENDAR_NAME)
+);
+
+
+-- ----------------------------------------------------------
+-- NAME: FN_QZ_PAUSED_TRIGGER_GRPS; TYPE: TABLE
+-- ----------------------------------------------------------
+create table fn_qz_paused_trigger_grps (
+SCHED_NAME VARCHAR(120) not null,
+TRIGGER_GROUP VARCHAR(200) not null,
+primary key (SCHED_NAME,TRIGGER_GROUP)
+);
+
+-- ----------------------------------------------------------
+-- NAME: FN_QZ_FIRED_TRIGGERS; TYPE: TABLE
+-- ----------------------------------------------------------
+create table fn_qz_fired_triggers (
+SCHED_NAME VARCHAR(120) not null,
+ENTRY_ID VARCHAR(95) not null,
+TRIGGER_NAME VARCHAR(200) not null,
+TRIGGER_GROUP VARCHAR(200) not null,
+INSTANCE_NAME VARCHAR(200) not null,
+FIRED_TIME BIGINT(13) not null,
+SCHED_TIME BIGINT(13) not null,
+PRIORITY INTEGER not null,
+STATE VARCHAR(16) not null,
+JOB_NAME VARCHAR(200) null,
+JOB_GROUP VARCHAR(200) null,
+IS_NONCONCURRENT VARCHAR(1) null,
+REQUESTS_RECOVERY VARCHAR(1) null,
+primary key (SCHED_NAME,ENTRY_ID)
+);
+
+-- ----------------------------------------------------------
+-- NAME: FN_QZ_SCHEDULER_STATE; TYPE: TABLE
+-- ----------------------------------------------------------
+create table fn_qz_scheduler_state (
+SCHED_NAME VARCHAR(120) not null,
+INSTANCE_NAME VARCHAR(200) not null,
+LAST_CHECKIN_TIME BIGINT(13) not null,
+CHECKIN_INTERVAL BIGINT(13) not null,
+primary key (SCHED_NAME,INSTANCE_NAME)
+);
+
+-- ----------------------------------------------------------
+-- NAME: FN_QZ_LOCKS; TYPE: TABLE
+-- ----------------------------------------------------------
+create table fn_qz_locks (
+SCHED_NAME VARCHAR(120) not null,
+LOCK_NAME VARCHAR(40) not null,
+primary key (SCHED_NAME,LOCK_NAME)
+);
+
+-- ----------------------------------------------------------
+-- NAME: FN_MENU_FAVORITES; TYPE: TABLE
+-- ----------------------------------------------------------
+
+create table fn_menu_favorites (
+ user_id int(11) not null,
+ menu_id int(11) not null,
+ primary key (user_id,menu_id)
+);
+
+-- FACELIFT - Table for Events, News and Resources
+
+create table fn_common_widget_data(
+ id int auto_increment,
+ category varchar(32),
+ href varchar(512),
+ title varchar(256),
+ content varchar(4096),
+ event_date varchar(10), -- YYYY-MM-DD
+ sort_order int,
+ primary key (id)
+);
+
+create table fn_app_contact_us (
+ app_id int(11) not null,
+ contact_name varchar(128) default null,
+ contact_email varchar(128) default null,
+ url varchar(256) default null,
+ active_yn varchar(2) default null,
+ description varchar(1024) default null,
+ primary key (app_id),
+ constraint fk_fn_a_con__ref_202_fn_app foreign key (app_id) references fn_app (app_id)
+);
+
+-- new 1610.2
+create table fn_pers_user_app_sel (
+ id int(11) not null auto_increment,
+ user_id int(11) not null,
+ app_id int(11) not null,
+ status_cd char(1) not null,
+ primary key(id),
+ constraint fk_1_fn_pers_user_app_sel_fn_user foreign key (user_id) references fn_user (user_id),
+ constraint fk_2_fn_pers_user_app_sel_fn_app foreign key (app_id) references fn_app (app_id)
+);
+
+-- end new 1610.2
+
+-- new 1702 tables/views
+ -- 1702 Additions for User Notifications
+ -- ----------------------------------------------------------
+ -- NAME: ep_notification; TYPE: TABLE
+ -- ----------------------------------------------------------
+ create table ep_notification (
+ notification_ID int(11) primary key not null auto_increment,
+ is_for_online_users char(1) default 'N',
+ is_for_all_roles char(1) default 'N',
+ active_YN char(1) default 'Y',
+ msg_header varchar(100),
+ msg_description varchar(2000),
+ msg_source varchar(50) default 'EP',
+ start_time timestamp default now(),
+ end_time timestamp null,
+ priority int(11),
+ creator_ID int(11) null default null,
+ created_date timestamp null default null,
+ notification_hyperlink varchar(512) null default null -- new column for 1710
+ );
+
+ -- ----------------------------------------------------------
+ -- NAME: ep_role_notification; TYPE: TABLE
+ -- ----------------------------------------------------------
+ create table ep_role_notification (
+ ID int(11) primary key not null auto_increment,
+ notification_ID int(11),
+ role_ID int(11),
+ recv_user_id int(11) null,
+ constraint fk_ep_role_notif_fn_role foreign key (role_ID) references fn_role(role_id),
+ constraint fk_ep_role_notif_fn_notif foreign key (notification_ID) references ep_notification(notification_ID)
+ );
+
+ -- ----------------------------------------------------------
+ -- NAME: ep_user_notification; TYPE: TABLE
+ -- ----------------------------------------------------------
+ create table ep_user_notification (
+ ID int(11) primary key not null auto_increment,
+ User_ID int(11),
+ notification_ID int(11),
+ is_viewed char(1) default 'N',
+ updated_time timestamp default now(),
+ constraint fk_ep_urole_notif_fn_user foreign key (User_ID) references fn_user(user_id),
+ constraint fk_ep_urole_notif_fn_notif foreign key (notification_ID) references ep_notification(notification_ID)
+ );
+
+ -- ----------------------------------------------------------
+ -- NAME: ep_pers_user_app_sort; TYPE: Table
+ -- ----------------------------------------------------------
+
+ CREATE TABLE ep_pers_user_app_sort (
+ id int(11) not null primary key auto_increment,
+ user_id int(11) not null,
+ sort_pref char(1) not null,
+ unique key uk_1_ep_pers_user_app_sort (user_id),
+ constraint fk_ep_pers_user_app_sort_fn_user foreign key (user_id) references fn_user(user_id)
+ );
+ -- ----------------------------------------------------------
+ -- NAME: ep_pers_user_app_man_sort; TYPE: Table
+ -- ----------------------------------------------------------
+
+ CREATE TABLE ep_pers_user_app_man_sort (
+ id int(11) not null primary key auto_increment,
+ user_id int(11) not null,
+ app_id int(11) not null,
+ sort_order int(11) not null,
+ unique key uk_1_ep_pers_user_app_man_sort (user_id, app_id),
+ constraint fk_ep_pers_app_man_sort_fn_user foreign key (user_id) references fn_user(user_id),
+ constraint fk_ep_pers_app_man_sort_fn_app foreign key (app_id) references fn_app(app_id)
+ );
+
+ -- ----------------------------------------------------------
+ -- NAME: ep_widget_catalog; TYPE: Table
+ -- ----------------------------------------------------------
+
+ CREATE TABLE ep_widget_catalog (
+ widget_id int(11) not null auto_increment,
+ wdg_name varchar(100) not null default '?',
+ service_id int(11) default null,
+ wdg_desc varchar(200) default null,
+ wdg_file_loc varchar(256) not null default '?',
+ all_user_flag char(1) not null default 'N',
+ primary key (widget_id)
+ );
+
+ -- ----------------------------------------------------------
+ -- NAME: ep_widget_catalog_role; TYPE: Table
+ -- ----------------------------------------------------------
+ create table ep_widget_catalog_role (
+ widget_id int(10) not null,
+ app_id int(11) default '1',
+ role_id int(10) not null,
+ key fk_ep_widget_catalog_role_fn_widget (widget_id),
+ key fk_ep_widget_catalog_role_ref_fn_role (role_id),
+ key fk_ep_widget_catalog_role_app_id (app_id),
+ constraint fk_ep_widget_catalog_role_fn_widget foreign key (widget_id) references ep_widget_catalog (widget_id),
+ constraint fk_ep_widget_catalog_role_ref_fn_role foreign key (role_id) references fn_role (role_id),
+ constraint fk_ep_widget_catalog_role_app_id foreign key (app_id) references fn_app (app_id)
+ );
+
+ -- ----------------------------------------------------------
+ -- NAME: ep_pers_user_widget_placement; TYPE: Table
+ -- ----------------------------------------------------------
+ CREATE TABLE ep_pers_user_widget_placement (
+ id int(11) not null primary key auto_increment,
+ user_id int(11) not null,
+ widget_id int(11) not null,
+ x int(11) not null,
+ y int(11),
+ height int(11),
+ width int(11),
+ unique key uk_1_ep_pers_user_widg_place (user_id, widget_id),
+ constraint fk_ep_pers_user_widg_place_fn_user foreign key (user_id) references fn_user(user_id),
+ constraint fk_ep_pers_user_widg_place_ep_widg foreign key (widget_id) references ep_widget_catalog(widget_id)
+ );
+
+ -- ----------------------------------------------------------
+ -- NAME: ep_pers_user_widget_sel; TYPE: TABLE
+ -- ----------------------------------------------------------
+ CREATE TABLE ep_pers_user_widget_sel (
+ id int(11) not null primary key auto_increment,
+ user_id int(11) not null,
+ widget_id int(11) not null,
+ status_cd char(1) not null,
+ unique key uk_1_ep_pers_user_widg_sel_user_widg (user_id, widget_id),
+ CONSTRAINT fk_1_ep_pers_user_wid_sel_fn_user FOREIGN KEY (user_id) REFERENCES fn_user (user_id),
+ CONSTRAINT fk_2_ep_pers_user_wid_sel_ep_wid FOREIGN KEY (widget_id) REFERENCES ep_widget_catalog (widget_id)
+ );
+
+ -- ----------------------------------------------------------
+ -- NAME: ep_widget_catalog_files; TYPE: TABLE
+ -- ----------------------------------------------------------
+ CREATE TABLE ep_widget_catalog_files (
+ file_id int(11) not null primary key auto_increment,
+ widget_id int(11),
+ widget_name VARCHAR(100) NOT NULL,
+ framework_js LONGBLOB NULL,
+ controller_js LONGBLOB NULL,
+ markup_html LONGBLOB NULL,
+ widget_css LONGBLOB NULL
+ );
+
+ -- ----------------------------------------------------------
+ -- NAME: fn_role_v; TYPE: VIEW
+ -- All roles without an APP_ID are Portal only.
+ -- ----------------------------------------------------------
+ create view fn_role_v as
+ select fn_role.role_id as role_id,
+ fn_role.role_name as role_name,
+ fn_role.active_yn as active_yn,
+ fn_role.priority as priority,
+ fn_role.app_id as app_id,
+ fn_role.app_role_id as app_role_id
+ from fn_role where isnull(fn_role.app_id);
+
+-- end new 1702 tables/views
+
+-- new 1707 tables/views
+
+ -- ----------------------------------------------------------
+ -- NAME: ep_user_roles_request; TYPE: TABLE
+ -- ----------------------------------------------------------
+
+create table ep_user_roles_request (
+ req_id int(11) not null primary key auto_increment,
+ user_id int(11) not null,
+ app_id int(11) not null,
+ created_date timestamp default now(),
+ updated_date timestamp default now(),
+ request_status character varying(50) not null,
+ constraint fk_user_roles_req_fn_user foreign key (user_id) references fn_user(user_id),
+ constraint fk_user_roles_req_fn_app foreign key (app_id) references fn_app(app_id)
+ );
+
+
+ -- ----------------------------------------------------------
+ -- NAME: ep_user_roles_request_det; TYPE: TABLE
+ -- ----------------------------------------------------------
+create table ep_user_roles_request_det (
+ id int(11) not null primary key auto_increment,
+ req_id int(11) default null,
+ requested_role_id int(10) not null,
+ request_type character varying(10) not null,
+ constraint fk_user_roles_req_fn_req_id foreign key (req_id) references ep_user_roles_request(req_id),
+ constraint fk_user_roles_req_fn_role_id foreign key (requested_role_id) references fn_role(role_id)
+ );
+
+ -- ----------------------------------------------------------
+ -- NAME: ep_microservice; TYPE: TABLE
+ -- ----------------------------------------------------------
+
+CREATE TABLE ep_microservice (
+ id INT(11) NOT NULL AUTO_INCREMENT,
+ name VARCHAR(50) NULL DEFAULT NULL,
+ description VARCHAR(50) NULL DEFAULT NULL,
+ appId INT(11) NULL DEFAULT NULL,
+ endpoint_url VARCHAR(200) NULL DEFAULT NULL,
+ security_type VARCHAR(50) NULL DEFAULT NULL,
+ username VARCHAR(50) NULL DEFAULT NULL,
+ password VARCHAR(50) NULL DEFAULT NULL,
+ active CHAR(1) NOT NULL DEFAULT 'Y',
+ PRIMARY KEY (id),
+ CONSTRAINT FK_FN_APP_EP_MICROSERVICE FOREIGN KEY (appId) REFERENCES fn_app (app_id)
+);
+
+ -- ----------------------------------------------------------
+ -- NAME: ep_microservice_parameter; TYPE: TABLE
+ -- ----------------------------------------------------------
+
+CREATE TABLE ep_microservice_parameter (
+ id INT(11) NOT NULL AUTO_INCREMENT,
+ service_id INT(11) NULL DEFAULT NULL,
+ para_key VARCHAR(50) NULL DEFAULT NULL,
+ para_value VARCHAR(50) NULL DEFAULT NULL,
+ PRIMARY KEY (id),
+ CONSTRAINT FK_EP_MICROSERIVCE_EP_MICROSERVICE_PARAMETER FOREIGN KEY (service_id) REFERENCES ep_microservice (id)
+);
+
+
+ -- ----------------------------------------------------------
+ -- NAME: ep_widget_preview_files; TYPE: TABLE
+ -- ----------------------------------------------------------
+
+CREATE TABLE ep_widget_preview_files (
+ preview_id INT(11) NOT NULL AUTO_INCREMENT,
+ html_file LONGBLOB NULL,
+ css_file LONGBLOB NULL,
+ javascript_file LONGBLOB NULL,
+ framework_file LONGBLOB NULL,
+ PRIMARY KEY (preview_id)
+);
+
+ -- ----------------------------------------------------------
+ -- NAME: ep_widget_microservice; TYPE: TABLE
+ -- ----------------------------------------------------------
+
+CREATE TABLE ep_widget_microservice (
+ id INT(11) NOT NULL AUTO_INCREMENT,
+ widget_id INT(11) NOT NULL DEFAULT '0',
+ microservice_id INT(11) NOT NULL DEFAULT '0',
+ PRIMARY KEY (id),
+ CONSTRAINT FK_EP_WIDGET_MICROSERVICE_EP_MICROSERVICE FOREIGN KEY (microservice_id) REFERENCES ep_microservice (id),
+ CONSTRAINT FK_EP_WIDGET_MICROSERVICE_EP_WIDGET FOREIGN KEY (widget_id) REFERENCES ep_widget_catalog (widget_id)
+);
+
+ -- ----------------------------------------------------------
+ -- NAME: ep_basic_auth_account; TYPE: TABLE
+ -- ----------------------------------------------------------
+
+create table ep_basic_auth_account (
+ id INT(11) NOT NULL AUTO_INCREMENT,
+ ext_app_name VARCHAR(50) NOT NULL,
+ username VARCHAR(50) NOT NULL,
+ password VARCHAR(50) null default null,
+ active_yn char(1) NOT NULL default 'Y',
+ PRIMARY KEY (id)
+);
+
+ -- ----------------------------------------------------------
+ -- NAME: ep_widget_catalog_parameter; TYPE: TABLE
+ -- ----------------------------------------------------------
+
+create table ep_widget_catalog_parameter (
+ id INT(11) NOT NULL AUTO_INCREMENT,
+ widget_id INT(11) NOT NULL,
+ user_id INT(11) NOT NULL,
+ param_id INT(11) NOT NULL,
+ user_value VARCHAR(50) NULL,
+ PRIMARY KEY (id),
+ CONSTRAINT EP_FN_USER_WIDGET_PARAMETER_FK FOREIGN KEY (user_id) REFERENCES fn_user (user_id),
+ CONSTRAINT EP_WIDGET_CATALOG_WIDGET_PARAMETER_FK FOREIGN KEY (widget_id) REFERENCES ep_widget_catalog (widget_id),
+ CONSTRAINT EP_PARAMETER_ID_WIDGET_PARAMETER_FK FOREIGN KEY (param_id) REFERENCES ep_microservice_parameter (id)
+);
+
+ -- ----------------------------------------------------------
+ -- NAME: ep_web_analytics_source; TYPE: TABLE
+ -- ----------------------------------------------------------
+
+create table ep_web_analytics_source(
+ resource_id int(11) NOT NULL auto_increment,
+ app_id int(11) NOT NULL,
+ report_source varchar(500),
+ report_name varchar(500),
+ PRIMARY KEY (resource_id),
+ FOREIGN KEY (app_id) REFERENCES fn_app(app_id)
+);
+
+ -- Machine Learning Tables
+ -- ----------------------------------------------------------
+ -- NAME: ep_ml_model; TYPE: TABLE
+ -- ----------------------------------------------------------
+
+create table ep_ml_model(
+ time_stamp timestamp default now(),
+ group_id int(11) NOT NULL,
+ model longblob,
+ PRIMARY KEY (time_stamp,group_id)
+);
+ -- ----------------------------------------------------------
+ -- NAME: ep_ml_rec; TYPE: TABLE
+ -- ----------------------------------------------------------
+
+create table ep_ml_rec(
+ time_stamp timestamp default now(),
+ org_user_id varchar(20) NOT NULL,
+ rec varchar(4000) DEFAULT NULL,
+ PRIMARY KEY (time_stamp,org_user_id)
+);
+
+ -- ----------------------------------------------------------
+ -- NAME: ep_ml_user; TYPE: TABLE
+ -- ----------------------------------------------------------
+
+create table ep_ml_user(
+ time_stamp timestamp default now(),
+ org_user_id varchar(20) NOT NULL,
+ group_id int(11) NOT NULL,
+ PRIMARY KEY (time_stamp,org_user_id)
+);
+
+ -- ----------------------------------------------------------
+ -- NAME: ep_endpoints; TYPE: TABLE
+ -- ----------------------------------------------------------
+
+create table ep_endpoints (
+ id INT(11) NOT NULL AUTO_INCREMENT,
+ url VARCHAR(50) NOT NULL,
+ PRIMARY KEY (id)
+);
+
+ -- ----------------------------------------------------------
+ -- NAME: ep_endpoints_basic_auth_account; TYPE: TABLE
+ -- ----------------------------------------------------------
+
+create table ep_endpoints_basic_auth_account (
+ id INT(11) NOT NULL AUTO_INCREMENT,
+ ep_id INT(11) DEFAULT NULL,
+ account_id INT(11) DEFAULT NULL,
+ PRIMARY KEY (id),
+ CONSTRAINT ep_endpoints_basic_auth_account_account_id_fk FOREIGN KEY (account_id) REFERENCES ep_basic_auth_account (id),
+ CONSTRAINT ep_endpoints_basic_auth_account_ep_id_fk FOREIGN KEY (ep_id) REFERENCES ep_endpoints (id)
+
+);
+
+-- end new 1707 tables/views
+
+-- new 1710 tables/views
+
+ -- ----------------------------------------------------------
+ -- NAME: ep_app_function; TYPE: TABLE
+ -- ----------------------------------------------------------
+
+CREATE TABLE ep_app_function (
+app_id INT(11) NOT NULL,
+function_cd VARCHAR(250) NOT NULL,
+function_name VARCHAR(500) NOT NULL,
+PRIMARY KEY (function_cd, app_id),
+INDEX fk_ep_app_function_app_id (app_id),
+CONSTRAINT fk_ep_app_function_app_id FOREIGN KEY (app_id) REFERENCES fn_app (app_id)
+);
+
+ -- ----------------------------------------------------------
+ -- NAME: ep_app_role_function; TYPE: TABLE
+ -- ----------------------------------------------------------
+
+CREATE TABLE `ep_app_role_function` (
+`id` INT(11) NOT NULL AUTO_INCREMENT,
+`app_id` INT(11) NOT NULL,
+`role_id` INT(11) NOT NULL,
+`function_cd` VARCHAR(250) NOT NULL,
+`role_app_id` VARCHAR(20) NULL DEFAULT NULL,
+PRIMARY KEY (`id`),
+UNIQUE INDEX `UNIQUE KEY` (`app_id`, `role_id`, `function_cd`),
+CONSTRAINT `fk_ep_app_role_function_app_id` FOREIGN KEY (`app_id`) REFERENCES `fn_app` (`app_id`),
+CONSTRAINT `fk_ep_app_role_function_ep_app_func` FOREIGN KEY (`app_id`, `function_cd`) REFERENCES `ep_app_function` (`app_id`, `function_cd`),
+CONSTRAINT `fk_ep_app_role_function_role_id` FOREIGN KEY (`role_id`) REFERENCES `fn_role` (`role_id`)
+);
+
+-- end new 1710 tables/views
+
+-- ----------------------------------------------------------
+-- NAME: QUARTZ TYPE: INDEXES
+-- ----------------------------------------------------------
+create index idx_fn_qz_j_req_recovery on fn_qz_job_details(sched_name,requests_recovery);
+create index idx_fn_qz_j_grp on fn_qz_job_details(sched_name,job_group);
+create index idx_fn_qz_t_j on fn_qz_triggers(sched_name,job_name,job_group);
+create index idx_fn_qz_t_jg on fn_qz_triggers(sched_name,job_group);
+create index idx_fn_qz_t_c on fn_qz_triggers(sched_name,calendar_name);
+create index idx_fn_qz_t_g on fn_qz_triggers(sched_name,trigger_group);
+create index idx_fn_qz_t_state on fn_qz_triggers(sched_name,trigger_state);
+create index idx_fn_qz_t_n_state on fn_qz_triggers(sched_name,trigger_name,trigger_group,trigger_state);
+create index idx_fn_qz_t_n_g_state on fn_qz_triggers(sched_name,trigger_group,trigger_state);
+create index idx_fn_qz_t_next_fire_time on fn_qz_triggers(sched_name,next_fire_time);
+create index idx_fn_qz_t_nft_st on fn_qz_triggers(sched_name,trigger_state,next_fire_time);
+create index idx_fn_qz_t_nft_misfire on fn_qz_triggers(sched_name,misfire_instr,next_fire_time);
+create index idx_fn_qz_t_nft_st_misfire on fn_qz_triggers(sched_name,misfire_instr,next_fire_time,trigger_state);
+create index idx_fn_qz_t_nft_st_misfire_grp on fn_qz_triggers(sched_name,misfire_instr,next_fire_time,trigger_group,trigger_state);
+create index idx_fn_qz_ft_trig_inst_name on fn_qz_fired_triggers(sched_name,instance_name);
+create index idx_fn_qz_ft_inst_job_req_rcvry on fn_qz_fired_triggers(sched_name,instance_name,requests_recovery);
+create index idx_fn_qz_ft_j_g on fn_qz_fired_triggers(sched_name,job_name,job_group);
+create index idx_fn_qz_ft_jg on fn_qz_fired_triggers(sched_name,job_group);
+create index idx_fn_qz_ft_t_g on fn_qz_fired_triggers(sched_name,trigger_name,trigger_group);
+create index idx_fn_qz_ft_tg on fn_qz_fired_triggers(sched_name,trigger_group);
+
+
+-- ------------------ create view section
+--
+-- name: v_url_access; type: view
+--
+create view v_url_access as
+ select distinct m.action as url,
+ m.function_cd
+ from fn_menu m
+ where (m.action is not null)
+union
+ select distinct t.action as url,
+ t.function_cd
+ from fn_tab t
+ where (t.action is not null)
+union
+ select r.restricted_url as url,
+ r.function_cd
+ from fn_restricted_url r;
+
+-- ------------------ alter table add constraint primary key section
+--
+-- name: cr_favorite_reports_user_idrep_id; type: constraint
+--
+alter table cr_favorite_reports
+ add constraint cr_favorite_reports_user_idrep_id primary key (user_id, rep_id);
+--
+-- name: cr_folder_folder_id; type: constraint
+--
+alter table cr_folder
+ add constraint cr_folder_folder_id primary key (folder_id);
+--
+-- name: cr_folder_access_folder_access_id; type: constraint
+--
+alter table cr_folder_access
+ add constraint cr_folder_access_folder_access_id primary key (folder_access_id);
+--
+-- name: cr_hist_user_map_hist_iduser_id; type: constraint
+--
+alter table cr_hist_user_map
+ add constraint cr_hist_user_map_hist_iduser_id primary key (hist_id, user_id);
+--
+-- name: cr_lu_file_type_lookup_id; type: constraint
+--
+alter table cr_lu_file_type
+ add constraint cr_lu_file_type_lookup_id primary key (lookup_id);
+--
+-- name: cr_raptor_action_img_image_id; type: constraint
+--
+alter table cr_raptor_action_img
+ add constraint cr_raptor_action_img_image_id primary key (image_id);
+--
+-- name: cr_raptor_pdf_img_image_id; type: constraint
+--
+alter table cr_raptor_pdf_img
+ add constraint cr_raptor_pdf_img_image_id primary key (image_id);
+--
+-- name: cr_remote_schema_info_schema_prefix; type: constraint
+--
+alter table cr_remote_schema_info
+ add constraint cr_remote_schema_info_schema_prefix primary key (schema_prefix);
+--
+-- name: cr_report_rep_id; type: constraint
+--
+alter table cr_report
+ add constraint cr_report_rep_id primary key (rep_id);
+--
+-- name: cr_report_access_rep_idorder_no; type: constraint
+--
+alter table cr_report_access
+ add constraint cr_report_access_rep_idorder_no primary key (rep_id, order_no);
+--
+-- name: cr_report_email_sent_log_log_id; type: constraint
+--
+alter table cr_report_email_sent_log
+ add constraint cr_report_email_sent_log_log_id primary key (log_id);
+--
+-- name: cr_report_file_history_hist_id; type: constraint
+--
+alter table cr_report_file_history
+ add constraint cr_report_file_history_hist_id primary key (hist_id);
+--
+-- name: cr_report_schedule_schedule_id; type: constraint
+--
+alter table cr_report_schedule
+ add constraint cr_report_schedule_schedule_id primary key (schedule_id);
+--
+-- name: cr_report_schedule_users_schedule_idrep_iduser_idorder_no; type: constraint
+--
+alter table cr_report_schedule_users
+ add constraint cr_report_schedule_users_schedule_idrep_iduser_idorder_no primary key (schedule_id, rep_id, user_id, order_no);
+--
+-- name: cr_report_template_map_report_id; type: constraint
+--
+alter table cr_report_template_map
+ add constraint cr_report_template_map_report_id primary key (report_id);
+--
+-- name: cr_table_role_table_namerole_id; type: constraint
+--
+alter table cr_table_role
+ add constraint cr_table_role_table_namerole_id primary key (table_name, role_id);
+--
+-- name: cr_table_source_table_name; type: constraint
+--
+alter table cr_table_source
+ add constraint cr_table_source_table_name primary key (table_name);
+--
+-- name: fn_audit_action_audit_action_id; type: constraint
+--
+alter table fn_audit_action
+ add constraint fn_audit_action_audit_action_id primary key (audit_action_id);
+--
+--
+-- name: fk_fn_audit_ref_205_fn_lu_ac; type: constraint
+--
+alter table fn_audit_log
+ add constraint fk_fn_audit_ref_205_fn_lu_ac foreign key (activity_cd) references fn_lu_activity(activity_cd);
+--
+-- name: fk_fn_role__ref_201_fn_funct; type: constraint
+--
+alter table fn_role_function
+ add constraint fk_fn_role__ref_201_fn_funct foreign key (function_cd) references fn_function(function_cd);
+--
+-- name: fn_chat_logs_chat_log_id; type: constraint
+--
+alter table fn_chat_logs
+ add constraint fn_chat_logs_chat_log_id primary key (chat_log_id);
+--
+-- name: fn_chat_room_chat_room_id; type: constraint
+--
+alter table fn_chat_room
+ add constraint fn_chat_room_chat_room_id primary key (chat_room_id);
+--
+-- name: fn_chat_users_id; type: constraint
+--
+alter table fn_chat_users
+ add constraint fn_chat_users_id primary key (id);
+--
+-- name: fn_lu_alert_method_alert_method_cd; type: constraint
+--
+alter table fn_lu_alert_method
+ add constraint fn_lu_alert_method_alert_method_cd primary key (alert_method_cd);
+--
+-- name: fn_lu_broadcast_site_broadcast_site_cd; type: constraint
+--
+alter table fn_lu_broadcast_site
+ add constraint fn_lu_broadcast_site_broadcast_site_cd primary key (broadcast_site_cd);
+--
+-- name: fn_lu_priority_priority_id; type: constraint
+--
+alter table fn_lu_priority
+ add constraint fn_lu_priority_priority_id primary key (priority_id);
+--
+-- name: fn_lu_role_type_role_type_id; type: constraint
+--
+alter table fn_lu_role_type
+ add constraint fn_lu_role_type_role_type_id primary key (role_type_id);
+--
+-- name: fn_lu_tab_set_tab_set_cd; type: constraint
+--
+alter table fn_lu_tab_set
+ add constraint fn_lu_tab_set_tab_set_cd primary key (tab_set_cd);
+--
+-- name: fn_lu_timezone_timezone_id; type: constraint
+--
+alter table fn_lu_timezone
+ add constraint fn_lu_timezone_timezone_id primary key (timezone_id);
+--
+-- name: fn_org_org_id; type: constraint
+--
+alter table fn_org
+ add constraint fn_org_org_id primary key (org_id);
+--
+-- name: fn_restricted_url_restricted_urlfunction_cd; type: constraint
+--
+alter table fn_restricted_url
+ add constraint fn_restricted_url_restricted_urlfunction_cd primary key (restricted_url, function_cd);
+--
+-- name: fn_role_composite_parent_role_idchild_role_id; type: constraint
+--
+alter table fn_role_composite
+ add constraint fn_role_composite_parent_role_idchild_role_id primary key (parent_role_id, child_role_id);
+--
+-- name: fn_role_function_role_idfunction_cd; type: constraint
+--
+alter table fn_role_function
+ add constraint fn_role_function_role_idfunction_cd primary key (role_id, function_cd);
+--
+-- name: fn_tab_tab_cd; type: constraint
+--
+alter table fn_tab
+ add constraint fn_tab_tab_cd primary key (tab_cd);
+--
+-- name: fn_tab_selected_selected_tab_cdtab_uri; type: constraint
+--
+alter table fn_tab_selected
+ add constraint fn_tab_selected_selected_tab_cdtab_uri primary key (selected_tab_cd, tab_uri);
+--
+-- name: fn_user_pseudo_role_pseudo_role_iduser_id; type: constraint
+--
+alter table fn_user_pseudo_role
+ add constraint fn_user_pseudo_role_pseudo_role_iduser_id primary key (pseudo_role_id, user_id);
+--
+-- name: fn_user_role_user_idrole_id; type: constraint
+--
+alter table fn_user_role
+ add constraint fn_user_role_user_idrole_id primary key (user_id, role_id, app_id);
+-- ------------------ create index section
+--
+-- name: cr_report_create_idpublic_yntitle; type: index
+--
+create index cr_report_create_idpublic_yntitle using btree on cr_report (create_id, public_yn, title);
+--
+-- name: cr_table_join_dest_table_name; type: index
+--
+create index cr_table_join_dest_table_name using btree on cr_table_join (dest_table_name);
+--
+-- name: cr_table_join_src_table_name; type: index
+--
+create index cr_table_join_src_table_name using btree on cr_table_join (src_table_name);
+--
+-- name: fn_audit_log_activity_cd; type: index
+--
+create index fn_audit_log_activity_cd using btree on fn_audit_log (activity_cd);
+--
+-- name: fn_audit_log_user_id; type: index
+--
+create index fn_audit_log_user_id using btree on fn_audit_log (user_id);
+--
+-- name: fn_org_access_cd; type: index
+--
+create index fn_org_access_cd using btree on fn_org (access_cd);
+--
+-- name: fn_role_function_function_cd; type: index
+--
+create index fn_role_function_function_cd using btree on fn_role_function (function_cd);
+--
+-- name: fn_role_function_role_id; type: index
+--
+create index fn_role_function_role_id using btree on fn_role_function (role_id);
+--
+-- name: fn_user_address_id; type: index
+--
+create index fn_user_address_id using btree on fn_user (address_id);
+--
+-- name: fn_user_alert_method_cd; type: index
+--
+create index fn_user_alert_method_cd using btree on fn_user (alert_method_cd);
+--
+-- name: fn_user_hrid; type: index
+--
+create unique index fn_user_hrid using btree on fn_user (hrid);
+--
+-- name: fn_user_login_id; type: index
+--
+create unique index fn_user_login_id using btree on fn_user (login_id);
+--
+-- name: fn_user_org_id; type: index
+--
+create index fn_user_org_id using btree on fn_user (org_id);
+--
+-- name: fn_user_role_role_id; type: index
+--
+create index fn_user_role_role_id using btree on fn_user_role (role_id);
+--
+-- name: fn_user_role_user_id; type: index
+--
+create index fn_user_role_user_id using btree on fn_user_role (user_id);
+--
+-- name: fk_fn_user__ref_178_fn_app_idx; type: index
+--
+create index fk_fn_user__ref_178_fn_app_idx on fn_user_role (app_id);
+ --
+ -- name: fn_role_name_app_id_idx; type: index
+ --
+ create unique index fn_role_name_app_id_idx using btree on fn_role (role_name,app_id);
+
+-- new for 1707
+
+create index ep_notif_recv_user_id_idx using btree on ep_role_notification (recv_user_id);
+
+-- end new for 1707
+
+-- ------------------ alter table add constraint foreign key section
+--
+-- name: fk_fn_user__ref_178_fn_app; type: fk constraint
+--
+alter table fn_user_role
+ add constraint fk_fn_user__ref_178_fn_app foreign key (app_id) references fn_app(app_id);
+--
+-- name: fk_cr_repor_ref_14707_cr_repor; type: fk constraint
+--
+alter table cr_report_schedule
+ add constraint fk_cr_repor_ref_14707_cr_repor foreign key (rep_id) references cr_report(rep_id);
+--
+-- name: fk_cr_repor_ref_14716_cr_repor; type: fk constraint
+--
+alter table cr_report_schedule_users
+ add constraint fk_cr_repor_ref_14716_cr_repor foreign key (schedule_id) references cr_report_schedule(schedule_id);
+--
+-- name: fk_cr_repor_ref_17645_cr_repor; type: fk constraint
+--
+alter table cr_report_log
+ add constraint fk_cr_repor_ref_17645_cr_repor foreign key (rep_id) references cr_report(rep_id);
+--
+-- name: fk_cr_repor_ref_8550_cr_repor; type: fk constraint
+--
+alter table cr_report_access
+ add constraint fk_cr_repor_ref_8550_cr_repor foreign key (rep_id) references cr_report(rep_id);
+--
+-- name: fk_cr_report_rep_id; type: fk constraint
+--
+alter table cr_report_email_sent_log
+ add constraint fk_cr_report_rep_id foreign key (rep_id) references cr_report(rep_id);
+--
+-- name: fk_cr_table_ref_311_cr_tab; type: fk constraint
+--
+alter table cr_table_join
+ add constraint fk_cr_table_ref_311_cr_tab foreign key (src_table_name) references cr_table_source(table_name);
+--
+-- name: fk_cr_table_ref_315_cr_tab; type: fk constraint
+--
+alter table cr_table_join
+ add constraint fk_cr_table_ref_315_cr_tab foreign key (dest_table_name) references cr_table_source(table_name);
+--
+-- name: fk_cr_table_ref_32384_cr_table; type: fk constraint
+--
+alter table cr_table_role
+ add constraint fk_cr_table_ref_32384_cr_table foreign key (table_name) references cr_table_source(table_name);
+--
+-- name: fk_fn_tab_function_cd; type: fk constraint
+--
+alter table fn_tab
+ add constraint fk_fn_tab_function_cd foreign key (function_cd) references fn_function(function_cd);
+--
+-- name: fk_fn_tab_selected_tab_cd; type: fk constraint
+--
+alter table fn_tab_selected
+ add constraint fk_fn_tab_selected_tab_cd foreign key (selected_tab_cd) references fn_tab(tab_cd);
+--
+-- name: fk_fn_tab_set_cd; type: fk constraint
+--
+alter table fn_tab
+ add constraint fk_fn_tab_set_cd foreign key (tab_set_cd) references fn_lu_tab_set(tab_set_cd);
+--
+-- name: fk_fn_user_ref_110_fn_org; type: fk constraint
+--
+alter table fn_user
+ add constraint fk_fn_user_ref_110_fn_org foreign key (org_id) references fn_org(org_id);
+--
+-- name: fk_fn_user_ref_123_fn_lu_al; type: fk constraint
+--
+alter table fn_user
+ add constraint fk_fn_user_ref_123_fn_lu_al foreign key (alert_method_cd) references fn_lu_alert_method(alert_method_cd);
+--
+-- name: fk_fn_user_ref_197_fn_user; type: fk constraint
+--
+ alter table fn_user
+ add constraint fk_fn_user_ref_197_fn_user foreign key (manager_id) references fn_user(user_id);
+--
+-- name: fk_fn_user_ref_198_fn_user; type: fk constraint
+--
+alter table fn_user
+ add constraint fk_fn_user_ref_198_fn_user foreign key (created_id) references fn_user(user_id);
+--
+-- name: fk_fn_user_ref_199_fn_user; type: fk constraint
+--
+alter table fn_user
+ add constraint fk_fn_user_ref_199_fn_user foreign key (modified_id) references fn_user(user_id);
+--
+-- name: fk_parent_key_cr_folder; type: fk constraint
+--
+alter table cr_folder
+ add constraint fk_parent_key_cr_folder foreign key (parent_folder_id) references cr_folder(folder_id);
+--
+-- name: fk_pseudo_role_pseudo_role_id; type: fk constraint
+--
+alter table fn_user_pseudo_role
+ add constraint fk_pseudo_role_pseudo_role_id foreign key (pseudo_role_id) references fn_role(role_id);
+--
+-- name: fk_pseudo_role_user_id; type: fk constraint
+--
+alter table fn_user_pseudo_role
+ add constraint fk_pseudo_role_user_id foreign key (user_id) references fn_user(user_id);
+--
+-- name: fk_restricted_url_function_cd; type: fk constraint
+--
+alter table fn_restricted_url
+ add constraint fk_restricted_url_function_cd foreign key (function_cd) references fn_function(function_cd);
+--
+-- name: fk_timezone; type: fk constraint
+--
+alter table fn_user
+ add constraint fk_timezone foreign key (timezone) references fn_lu_timezone(timezone_id);
+--
+-- name: sys_c0014614; type: fk constraint
+--
+alter table cr_report_file_history
+ add constraint sys_c0014614 foreign key (file_type_id) references cr_lu_file_type(lookup_id);
+--
+-- name: sys_c0014615; type: fk constraint
+--
+alter table cr_report_file_history
+ add constraint sys_c0014615 foreign key (rep_id) references cr_report(rep_id);
+--
+-- name: sys_c0014616; type: fk constraint
+--
+alter table cr_hist_user_map
+ add constraint sys_c0014616 foreign key (hist_id) references cr_report_file_history(hist_id);
+--
+-- name: sys_c0014617; type: fk constraint
+--
+alter table cr_hist_user_map
+ add constraint sys_c0014617 foreign key (user_id) references fn_user(user_id);
+--
+-- name: sys_c0014618; type: fk constraint
+--
+alter table fn_menu_favorites
+add constraint sys_c0014618 foreign key (user_id) references fn_user(user_id);
+
+--
+-- name: sys_c0014619; type: fk constraint
+--
+alter table fn_menu_favorites
+add constraint sys_c0014619 foreign key (menu_id) references fn_menu_functional(menu_id);
+
+commit;
diff --git a/ecomp-portal-DB-os/PortalMySql_3_3_Add.sql b/ecomp-portal-DB-os/PortalMySql_3_3_Add.sql
new file mode 100644
index 00000000..509e9656
--- /dev/null
+++ b/ecomp-portal-DB-os/PortalMySql_3_3_Add.sql
@@ -0,0 +1,15 @@
+set foreign_key_checks=1;
+
+use portal;
+
+ALTER TABLE fn_app
+ADD COLUMN mode_of_integration varchar(50) DEFAULT NULL AFTER ueb_topic_name;
+
+ALTER TABLE fn_app
+ADD COLUMN ack_app CHAR(1) DEFAULT 'Y' AFTER ueb_topic_name;
+
+ALTER TABLE fn_app
+ADD COLUMN uses_cadi CHAR(1) DEFAULT NULL AFTER ueb_topic_name;
+
+
+commit;
diff --git a/ecomp-portal-DB-os/PortalMySql_3_3_Remove.sql b/ecomp-portal-DB-os/PortalMySql_3_3_Remove.sql
new file mode 100644
index 00000000..f1aba387
--- /dev/null
+++ b/ecomp-portal-DB-os/PortalMySql_3_3_Remove.sql
@@ -0,0 +1,10 @@
+
+use portal;
+
+alter table fn_app drop column mode_of_integration;
+
+alter table fn_app drop column ack_app;
+
+alter table fn_app drop column uses_cadi;
+
+commit; \ No newline at end of file
diff --git a/ecomp-portal-DB-os/README.md b/ecomp-portal-DB-os/README.md
index c6c830ce..d3a7d9fc 100644
--- a/ecomp-portal-DB-os/README.md
+++ b/ecomp-portal-DB-os/README.md
@@ -10,9 +10,9 @@ DDL
For an Opensource instance run only
-3_2: script PortalDDLMySql_2_1_Common.sql.
+3_3: script PortalDDLMySql_3_3_Common.sql.
-3_2: PortalDDLMySql_3_2_OS.sql is only a placeholder at this time.
+3_3: PortalDDLMySql_3_2_OS.sql is only a placeholder at this time.
DML
diff --git a/portal-FE-common/src/app/pages/dashboard-widget-catalog/dashboard-widget-catalog.component.ts b/portal-FE-common/src/app/pages/dashboard-widget-catalog/dashboard-widget-catalog.component.ts
index dbdd2928..14e5773c 100644
--- a/portal-FE-common/src/app/pages/dashboard-widget-catalog/dashboard-widget-catalog.component.ts
+++ b/portal-FE-common/src/app/pages/dashboard-widget-catalog/dashboard-widget-catalog.component.ts
@@ -82,7 +82,8 @@ export class DashboardWidgetCatalogComponent implements OnInit {
//console.log("What is coming from backend" + JSON.parse(data));
this.widgetCatalogData = data;
console.log(this.widgetCatalogData);
- for (let entry of this.widgetCatalogData) {
+ if(this.widgetCatalogData != null){
+ for (let entry of this.widgetCatalogData) {
if (entry[1] == 'Events' || entry[1] == 'News' || entry[1] == 'Resources') {
if(entry[4] === 'S' || entry[4] === null)
{
@@ -96,6 +97,7 @@ export class DashboardWidgetCatalogComponent implements OnInit {
}
}
}
+ }
});
}
});
diff --git a/portal-FE-os/src/app/pages/application-onboarding/application-details-dialog/application-details-dialog.component.html b/portal-FE-os/src/app/pages/application-onboarding/application-details-dialog/application-details-dialog.component.html
index bef37b84..6d0c5446 100644
--- a/portal-FE-os/src/app/pages/application-onboarding/application-details-dialog/application-details-dialog.component.html
+++ b/portal-FE-os/src/app/pages/application-onboarding/application-details-dialog/application-details-dialog.component.html
@@ -36,240 +36,305 @@
-->
<div class="container">
- <!--Modal Headers-->
+ <!--Modal Headers-->
<div class="modal-header">
<h4 class="modal-title">Application Details</h4>
<button type="button" class="close" aria-label="Close" (click)="activeModal.dismiss('Cross')">
<span aria-hidden="true">&times;</span>
</button>
</div>
- <!--Modal Body goes here-->
+ <!--Modal Body goes here-->
<div class="modal-body">
<div class="application-details-modal">
- <div class="app-properties-main" scroll-top="appDetails.scrollApi">
- <form name="appForm" novalidate autocomplete="off">
- <div id="app-left-container" class="left-container">
- <div class="property-label checkbox-label">
+ <div class="app-properties-main" scroll-top="appDetails.scrollApi">
+ <form name="appForm" novalidate autocomplete="off">
+ <div id="app-left-container" class="left-container">
+ <!-- <div class="property-label checkbox-label">
<mat-checkbox name="isRestrictedApp" type="checkbox" [(ngModel)]="applicationObj.restrictedApp"
id="checkbox-app-is-restricted" [disabled]="isEditMode" [checked]="applicationObj.restrictedApp">
Hyperlink only application
</mat-checkbox>
- </div>
-
- <div class="property required">
- <div class="property-label">Application Name</div>
- <input id="input-app-name" type="text"
- [(ngModel)]="applicationObj.name" maxlength="100" name="name"
- pattern="/^[a-zA-Z0-9_\-\s\&]*$/" required="true" />
-
- <div id="error-container-conflict" class="error-container" ng-show="appDetails.conflictMessages.name"
- id="conflictMessages-name">
- <small id="app-name-error-conflict" class="err-message"
- ng-bind="appDetails.conflictMessages.name">
- </small>
- </div>
-
- <div id="error-container-edit" class="error-container"
- *ngIf="(!applicationObj.name || applicationObj.name.length == 0)">
- <small id="app-name-error-required" class="err-message">
- Application name is required
- </small>
- </div>
- </div>
-
- <div [ngClass]="(applicationObj.isEnabled) ? 'property required' : 'property'">
- <div id="url-property-label" class="property-label">URL</div>
- <input id="input-app-url" [(ngModel)]="applicationObj.url"
- maxlength="256" name="url" type="url" placeholder="https://"
- pattern="/^((?:https?\:\/\/|ftp?\:\/\/)?(w{3}.)?(?:[-a-z0-9]+\.)*[-a-z0-9]+.*)[^-_.]$/i" required />
+ </div> -->
+
+ <div class="property required">
+ <div class="property-label" style="display: flex;">
+ <span style="flex: 9">Application Name</span>
+ <app-information-tooltip style="flex: 1;"
+ [textMessage]="'Application Name Information'">
+ </app-information-tooltip>
+ </div>
+ <input #applicationName id="input-app-name" type="text" [(ngModel)]="applicationObj.appName"
+ maxlength="100" name="name" pattern="/^[a-zA-Z0-9_\-\s\&]*$/" required="true" />
- <div id="error-container-edit" class="error-container"
- *ngIf="(applicationObj.isEnabled && applicationObj.url=='')">
- <small id="app-name-error-required" class="err-message">
- Application URL is required
- </small>
+ <div id="error-container-conflict" class="error-container"
+ ng-show="appDetails.conflictMessages.name" id="conflictMessages-name">
+ <small id="app-name-error-conflict" class="err-message"
+ ng-bind="appDetails.conflictMessages.name">
+ </small>
+ </div>
</div>
- </div>
-
- <div [ngClass]="(applicationObj.isEnabled) ? 'property required' : 'property'"
- [hidden] ="applicationObj.restrictedApp">
- <div class="property-label">Rest API URL</div>
- <input id="input-app-rest-url" [(ngModel)]="applicationObj.restUrl"
- name="restUrl" type="url" placeholder="https://"
- pattern="/^((?:https?\:\/\/|ftp?\:\/\/)?(w{3}.)?(?:[-a-z0-9]+\.)*[-a-z0-9]+.*)[^-_.]$/i" maxlength="256"
- ng-required="!applicationObj.restrictedApp" />
-
- <div id="error-container-edit" class="error-container"
- *ngIf="(applicationObj.isEnabled && applicationObj.restUrl=='')">
- <small id="app-name-error-required" class="err-message">
- Rest API URL is required
- </small>
+
+ <div id="property-active" class="property-active" style="display: flex;
+ justify-content: flex-end;margin-right: 16px;">
+ <mat-checkbox name="isEnabled" [(ngModel)]="applicationObj.isEnabled"
+ [checked]="applicationObj.isEnabled" id="checkbox-app-is-enabled">Active
+ </mat-checkbox>
</div>
- </div>
-
- <div [ngClass]="(applicationObj.isEnabled || applicationObj.isCentralAuth) ? 'property required' : 'property'"
- [hidden] ="applicationObj.restrictedApp">
- <div id="username-property-label" class="property-label">Username</div>
- <input type="text" id="input-username-property" [(ngModel)]="applicationObj.username" name="username"
- maxlength="256" ng-required="!appDetails.app.restrictedApp" />
-
- <div id="error-container-edit" class="error-container"
- *ngIf="((applicationObj.isEnabled || applicationObj.isCentralAuth) && applicationObj.username =='')">
- <small id="app-name-error-required" class="err-message">
- App Username is required
- </small>
+
+ <div class="property">
+ <div class="property-label" style="display: flex;">
+ <mat-label style="flex: 9">Application Type</mat-label>
+ <app-information-tooltip style="flex: 1;"
+ [textMessage]="'Application Type Information - Gui, Hyperlink or Non-gui'">
+ </app-information-tooltip>
+ </div>
+ <mat-select [disabled]="action === 'edit'" [(value)]="applicationObj.applicationType">
+ <mat-option *ngFor="let appType of applicationTypeArray" [value]="appType.value">
+ {{appType.name}}
+ </mat-option>
+ </mat-select>
</div>
- </div>
-
- <div [ngClass]="(applicationObj.isEnabled && !applicationObj.isCentralAuth) ? 'property required' : 'property'"
- [hidden] ="applicationObj.restrictedApp">
- <div id="pwd-property-label" class="property-label">Password</div>
- <input type="password" id="input-mylogins-password"
- [(ngModel)]="applicationObj.appPassword" autocomplete="new-password"
- name="appPassword" maxlength="256"/>
- <div id="error-container-edit" class="error-container"
- *ngIf="(applicationObj.isEnabled && !applicationObj.isCentralAuth && applicationObj.appPassword =='')">
- <small id="app-name-error-required" class="err-message">
- Password is required
- </small>
+ <div class="property" *ngIf="applicationObj.applicationType == '1'">
+ <div class="property-label" style="display: flex;">
+ <mat-label style="flex: 9">Mode of Integration</mat-label>
+ <app-information-tooltip style="flex: 1;"
+ [textMessage]="'Mode Of Integration. SDK or Framework'">
+ </app-information-tooltip>
+ </div>
+ <mat-select [(value)]="applicationObj.modeOfIntegration">
+ <mat-option *ngFor="let integrationType of modeOfIntegration"
+ [value]="integrationType.value">
+ {{integrationType.name}}
+ </mat-option>
+ </mat-select>
</div>
- </div>
- </div>
-
- <!-- Right container-->
- <div class="right-container">
- <div class="property">
- <div class="property-label">Upload Image</div>
- <input type="file" id="input-app-image-upload"
- class="input-file-field input-app-image-upload-ht"
- accept="image/*" [(ngModel)]="applicationObj.originalImage"
- name="appImage" image-upload="applicationObj.originalImage"
- image-upload-resize-max-height="300"
- image-upload-resize-max-width="360"
- image-upload-resize-quality="0.7"
- image-upload-api="appDetails.imageApi"
- (change)="appImageHandler($event)" />
-
- <div id="app-error-image-upload-type" class="error-container"
- *ngIf="appImageTypeError" class="ng-hide">
- <div class="error-container">
- <small id="error-app-invalid-image-size" class="err-message">File must be an image</small>
+
+ <div class="property" *ngIf="!(applicationObj.applicationType == '2')">
+ <div class="property-label" style="display: flex;">
+ <mat-label style="flex: 9">Roles Management Type</mat-label>
+ <app-information-tooltip style="flex: 1;" [textMessage]="'Roles Management Type'">
+ </app-information-tooltip>
+ </div>
+ <mat-select [(value)]="applicationObj.rolesInAAF">
+ <mat-option *ngFor="let roleRepo of rolesManagementType" [value]="roleRepo.value">
+ {{roleRepo.name}}
+ </mat-option>
+ </mat-select>
</div>
- </div>
-
- <div id="app-error-image-upload" class="error-container"
- *ngIf="(applicationObj.originalImage && applicationObj.originalImage.dirty)">
- <div ng-messages="appForm.appImage.$error"
- class="error-container">
- <small id="error-app-invalid-image-size" class="err-message"
- ng-message="imageSize">Image file must be smaller than
- 1MB</small>
+
+ <div *ngIf="!((applicationObj.applicationType=='2') || (!applicationObj.rolesInAAF))"
+ class="property-active" style="display: flex;">
+ <mat-checkbox style="flex: 9" name="appAck" [(ngModel)]="applicationObj.appAck">
+ Notify App For AAF Operations
+ </mat-checkbox>
+ <app-information-tooltip style="flex: 1;"
+ [textMessage]="'Notify application for AAF operations'">
+ </app-information-tooltip>
</div>
- </div>
-
- <div class="property-label preview">
- <span class="left-label">Preview</span>
- <span class="remove" (click)="removeImage()">Remove</span>
- </div>
- <img id="image-app-preview" class="image-preview"
- src="{{applicationObj.imageLink || applicationObj.thumbnail || emptyImgForPreview}}" />
-
- <br/>
- <div id="property-active" class="property-active">
- <mat-checkbox name="isEnabled" [(ngModel)]="applicationObj.isEnabled"
- [checked]="applicationObj.isEnabled"
- id="checkbox-app-is-enabled">Active
- </mat-checkbox>
- </div>
-
- <div id="property-guest-access" class="property-guest-access">
- <mat-checkbox name="isOpen" [(ngModel)]="applicationObj.isOpen" id="checkbox-app-is-open"
- [checked]="(applicationObj.isOpen || applicationObj.restrictedApp)"
- [disabled]="applicationObj.restrictedApp">Allow guest access</mat-checkbox>
- </div>
-
- <div class="table-control" style="display: inline-flex;" [hidden] ="applicationObj.restrictedApp">
- <div id="property-is-central-auth" class="property" [hidden] ="applicationObj.restrictedApp">
- <mat-checkbox name="isCentralAuth" [(ngModel)]="applicationObj.isCentralAuth"
- id="checkbox-app-is-central-auth" [checked]="applicationObj.isCentralAuth">
- Centralized
+
+ <div class="property-active" *ngIf="!(applicationObj.applicationType == '2'
+ ||(!applicationObj.rolesInAAF))">
+ <mat-checkbox name="usesCadi" [(ngModel)]="applicationObj.usesCadi"
+ [checked]="applicationObj.usesCadi">Is CADI Enabled?
</mat-checkbox>
</div>
-
- <div class="centralized-key" aria-haspopup="true" style="padding-left: 150px;">
- <div b2b-flyout-toggler class="notification-div" >
- <div id="tooltip" class="icon-primary-flat-info" tabindex="0"
- b2b-accessibility-click="13,32" aria-label="notifications"
- aria-haspopup="true"
- role="button"></div>
+
+ <div class="table-control" style="display: inline-flex;"
+ *ngIf="!(applicationObj.applicationType == '2' || !applicationObj.rolesInAAF)">
+
+ <div [ngClass]="(applicationObj.rolesInAAF) ? 'property required' : 'property'"
+ style="width: 250px;">
+ <div id="pwd-property-label" class="property-label">AAF Namespace</div>
+ <input type="text" id="input-mylogins-auth-namespace"
+ [(ngModel)]="applicationObj.nameSpace" name="appAuthNameSpace" maxlength="256"
+ [disabled]="!applicationObj.rolesInAAF" />
</div>
-
- <!--<div id="notification" align="left">
- <p class="uuid-text"
- style="font: normal 12px Omnes-ECOMP-W02, Arial;">
- To convert the non-centralized app to centralized app please
- follow below steps. <a href="https://wiki.web.att.com/display/ECops/BulkUpload" target="_blank">
- https://wiki.web.att.com/display/ECops/BulkUpload</a>
- </p>
+ <div class="communitcaion-key" aria-haspopup="true" style="padding-left: 20px;">
+
+ <div b2b-flyout-toggler class="notification-div">
+ <div id="tooltip" class="icon-primary-flat-info" tabindex="0"
+ b2b-accessibility-click="13,32" aria-label="notifications" aria-haspopup="true"
+ role="button"></div>
+ </div>
+ <!--<div id="notification" align="left">
+ <p class="nameSpace-text" style="font: normal 12px Omnes-ECOMP-W02, Arial;">NameSpace should be created in AAF and portal mechid should be admin of the given namespace.</p>
</div>-->
+ </div>
+ </div>
+
+ <div *ngIf="!(applicationObj.applicationType == '3')"
+ [ngClass]="(applicationObj.isEnabled) ? 'property required' : 'property'">
+ <div class="property-label" style="display: flex;">
+ <span style="flex: 9">Landing Page</span>
+ <app-information-tooltip style="flex: 1;" [textMessage]="'Application URL Information'">
+ </app-information-tooltip>
+ </div>
+ <input id="input-app-url" [(ngModel)]="applicationObj.landingPage" maxlength="256"
+ name="url" type="url" placeholder="https://"
+ pattern="/^((?:https?\:\/\/|ftp?\:\/\/)?(w{3}.)?(?:[-a-z0-9]+\.)*[-a-z0-9]+.*)[^-_.]$/i"
+ required />
+
+ <div id="error-container-edit" class="error-container"
+ *ngIf="(applicationObj.isEnabled && applicationObj.landingPage=='')">
+ <small id="app-name-error-required" class="err-message">
+ Landing Page URL is required
+ </small>
+ </div>
+ </div>
+
+ <div [ngClass]="(applicationObj.isEnabled) ? 'property required' : 'property'"
+ *ngIf="!(applicationObj.applicationType == '2' || applicationObj.applicationType == '3')">
+ <div class="property-label" style="display: flex;">
+ <span style="flex: 9">Rest API URL</span>
+ <app-information-tooltip style="flex: 1;" [textMessage]="'Rest Api URL Information'">
+ </app-information-tooltip>
+ </div>
+ <input id="input-app-rest-url" [(ngModel)]="applicationObj.restUrl" name="restUrl"
+ type="url" placeholder="https://"
+ pattern="/^((?:https?\:\/\/|ftp?\:\/\/)?(w{3}.)?(?:[-a-z0-9]+\.)*[-a-z0-9]+.*)[^-_.]$/i"
+ maxlength="256" ng-required="applicationObj.applicationType == '1'" />
+
+ <div id="error-container-edit" class="error-container"
+ *ngIf="(applicationObj.isEnabled && applicationObj.restUrl=='')">
+ <small id="app-name-error-required" class="err-message">
+ Rest API URL is required
+ </small>
+ </div>
+ </div>
+
+ <div [ngClass]="(applicationObj.isEnabled || applicationObj.rolesInAAF) ? 'property required' : 'property'"
+ *ngIf="!(applicationObj.applicationType == '2')">
+ <div id="username-property-label" class="property-label" style="display: flex;">
+ <span style="flex: 9">Auth Configured User</span>
+ <app-information-tooltip style="flex: 1;"
+ [textMessage]="'Basic Authentication Username Information'">
+ </app-information-tooltip>
+ </div>
+ <input type="text" id="input-username-property"
+ [(ngModel)]="applicationObj.appBasicAuthUsername" name="username" maxlength="256"
+ ng-required="!appDetails.app.restrictedApp" />
+
+ <div id="error-container-edit" class="error-container"
+ *ngIf="((applicationObj.isEnabled || applicationObj.rolesInAAF) && applicationObj.appBasicAuthUsername =='')">
+ <small id="app-name-error-required" class="err-message">
+ App Username is required
+ </small>
+ </div>
+ </div>
+
+ <div [ngClass]="(applicationObj.isEnabled && !applicationObj.rolesInAAF) ? 'property required' : 'property'"
+ *ngIf="!(applicationObj.applicationType == '2' || (applicationObj.rolesInAAF && applicationObj.usesCadi))">
+ <div id="pwd-property-label" class="property-label" style="display: flex;">
+ <span style="flex: 9">Basic Auth Password</span>
+ <app-information-tooltip style="flex: 1;"
+ [textMessage]="'Basic Authentication Password Information'">
+ </app-information-tooltip>
+ </div>
+ <input type="password" id="input-mylogins-password"
+ [(ngModel)]="applicationObj.appBasicAuthPassword" autocomplete="new-password"
+ name="appPassword" maxlength="256" />
+
+ <div id="error-container-edit" class="error-container"
+ *ngIf="(applicationObj.isEnabled && !applicationObj.rolesInAAF && applicationObj.appBasicAuthPassword =='')">
+ <small id="app-name-error-required" class="err-message">
+ Password is required
+ </small>
+ </div>
</div>
</div>
-
- <div class="table-control" style="display: inline-flex;" [hidden] ="applicationObj.restrictedApp">
- <div id="property-communication-key" class="property"
- [hidden] ="applicationObj.restrictedApp" style="width: 250px;">
- <div id="property-communication-key-label" class="property-label">Application UUID</div>
- <input type="text" id="input-UEB-communication-key"
- [(ngModel)]="applicationObj.uebKey" name="uebKey"
- readonly="readonly" [disabled]="true"/>
+
+ <!-- Right container-->
+ <div class="right-container">
+
+ <div class="property" *ngIf="!(applicationObj.applicationType == '3')">
+ <div class="property-label" style="display: flex;">
+ <span style="flex: 9">Upload
+ Image</span>
+ <app-information-tooltip style="flex: 1;"
+ [textMessage]="'Image file must be smaller than 1MB'">
+ </app-information-tooltip>
+ </div>
+ <input type="file" id="input-app-image-upload"
+ class="input-file-field input-app-image-upload-ht" accept="image/*"
+ [(ngModel)]="applicationObj.originalImage" name="appImage"
+ image-upload="applicationObj.originalImage" image-upload-resize-max-height="300"
+ image-upload-resize-max-width="360" image-upload-resize-quality="0.7"
+ image-upload-api="appDetails.imageApi" (change)="appImageHandler($event)" />
+
+ <div id="app-error-image-upload-type" class="error-container" *ngIf="appImageTypeError"
+ class="ng-hide">
+ <div class="error-container">
+ <small id="error-app-invalid-image-size" class="err-message">File must be an
+ image</small>
+ </div>
+ </div>
+
+ <div id="app-error-image-upload" class="error-container"
+ *ngIf="(applicationObj.originalImage && applicationObj.originalImage.dirty)">
+ <div ng-messages="appForm.appImage.$error" class="error-container">
+ <small id="error-app-invalid-image-size" class="err-message"
+ ng-message="imageSize">Image file must be smaller than
+ 1MB</small>
+ </div>
+ </div>
+ </div>
+
+
+ <div class="property" *ngIf="!(applicationObj.applicationType == '3')">
+ <div class="property-label preview">
+ <span class="left-label">Preview</span>
+ <span class="remove" (click)="removeImage()">Remove</span>
+ </div>
+ <img id="image-app-preview" class="image-preview"
+ src="{{applicationObj.imageLink || applicationObj.thumbnail || emptyImgForPreview}}" />
+ </div>
+
+ <div class="property" *ngIf="!(applicationObj.applicationType == '3')">
+ <div id="property-guest-access" class="property-guest-access">
+ <mat-checkbox name="isOpen" [(ngModel)]="applicationObj.isOpen"
+ id="checkbox-app-is-open"
+ [checked]="(applicationObj.isOpen || applicationObj.applicationType == '2')"
+ [disabled]="applicationObj.applicationType == '2'">Allow guest access
+ </mat-checkbox>
+ </div>
</div>
- <div class="communitcaion-key" aria-haspopup="true" style="padding-left: 20px;">
- <div b2b-flyout-toggler class="notification-div">
- <div id="tooltip" class="icon-primary-flat-info" tabindex="0"
- b2b-accessibility-click="13,32" aria-label="notifications"
- aria-haspopup="true"
- role="button"></div>
+ <div class="table-control" style="display: inline-flex;"
+ *ngIf="!(applicationObj.applicationType == '2')">
+ <div id="property-communication-key" class="property"
+ *ngIf="!(applicationObj.applicationType == '2' || applicationObj.applicationType == '3')"
+ style="width: 250px;">
+ <div id="property-communication-key-label" class="property-label">Application
+ UUID</div>
+ <input type="text" id="input-UEB-communication-key" [(ngModel)]="applicationObj.uebKey"
+ name="uebKey" readonly="readonly" [disabled]="true" />
+ </div>
+
+ <div class="communitcaion-key" aria-haspopup="true" style="padding-left: 20px;">
+ <div b2b-flyout-toggler class="notification-div">
+ <div id="tooltip" class="icon-primary-flat-info" tabindex="0"
+ b2b-accessibility-click="13,32" aria-label="notifications" aria-haspopup="true"
+ role="button"></div>
+ </div>
+ <!--<div id="notification" align="left">
+ <p class="uuid-text" style="font: normal 12px Omnes-ECOMP-W02, Arial;">Application UUID is used as a communication
+ key between application and portal.Please place this value in
+ portal.properties</p>
+ </div>-->
+ </div>
</div>
- <!--<div id="notification" align="left">
- <p class="uuid-text" style="font: normal 12px Omnes-ECOMP-W02, Arial;">Application UUID is used as a communication
- key between application and portal.Please place this value in
- portal.properties</p>
- </div>-->
- </div>
- </div>
-
- <div class="table-control" style="display: inline-flex;" [hidden] ="applicationObj.restrictedApp">
-
- <div [ngClass]="(applicationObj.isCentralAuth) ? 'property required' : 'property'"
- [hidden] ="applicationObj.restrictedApp" style="width: 250px;">
- <div id="pwd-property-label" class="property-label" >Name Space</div>
- <input type="text" id="input-mylogins-auth-namespace"
- [(ngModel)]="applicationObj.nameSpace" name="appAuthNameSpace"
- maxlength="256" [disabled]="!applicationObj.isCentralAuth" />
</div>
- <div class="communitcaion-key" aria-haspopup="true" style="padding-left: 20px;">
-
- <div b2b-flyout-toggler class="notification-div">
- <div id="tooltip" class="icon-primary-flat-info" tabindex="0"
- b2b-accessibility-click="13,32" aria-label="notifications"
- aria-haspopup="true"
- role="button"></div>
- </div>
- <!--<div id="notification" align="left">
- <p class="nameSpace-text" style="font: normal 12px Omnes-ECOMP-W02, Arial;">NameSpace should be created in AAF and portal mechid should be admin of the given namespace.</p>
- </div>-->
- </div>
- </div>
- </div>
- </div>
- </form>
+ </form>
</div>
</div>
- </div>
- <div class="modal-footer">
- <button type="button" class="btn btn-primary" [disabled]="(!applicationObj.name || applicationObj.name.length == 0)" (click)="saveChanges()">Save</button> &nbsp;
- <button type="button" class="btn btn-primary" (click)="activeModal.close('Close')">Cancel</button>
+
+ <div class="modal-footer">
+ <button type="button" class="btn btn-primary"
+ [disabled]="(!applicationObj.appName || applicationObj.appName.length == 0)"
+ (click)="saveChanges()">Save</button> &nbsp;
+ <button type="button" class="btn btn-primary" (click)="activeModal.close('Close')">Cancel</button>
+ </div>
+
</div>
</div> \ No newline at end of file
diff --git a/portal-FE-os/src/app/pages/application-onboarding/application-details-dialog/application-details-dialog.component.scss b/portal-FE-os/src/app/pages/application-onboarding/application-details-dialog/application-details-dialog.component.scss
index 0e042a96..1106eb5a 100644
--- a/portal-FE-os/src/app/pages/application-onboarding/application-details-dialog/application-details-dialog.component.scss
+++ b/portal-FE-os/src/app/pages/application-onboarding/application-details-dialog/application-details-dialog.component.scss
@@ -35,6 +35,10 @@
*
*
*/
+
+ .application-details-modal{
+ min-height: 37vw;
+ }
.application-details-modal .app-properties-mainapp-properties-main{
padding-left: 40px;
@@ -58,7 +62,7 @@
.application-details-modal .app-properties-main .property{
position: relative;
- margin-bottom: 18px;
+ margin-bottom: 16px;
}
.application-details-modal .app-properties-main .checkbox-label{
display: inline-block;
@@ -73,7 +77,7 @@
}
.application-details-modal .app-properties-main .preview{
width: 220px;
- margin-top: 22px;
+ margin-top: 11px;
display: block;
}
@@ -90,6 +94,17 @@
.application-details-modal .app-properties-main .input-field{
width: 220px;
}
+
+mat-select {
+ width: 16em;
+ margin: 0;
+ font-family: inherit;
+ font-size: inherit;
+ line-height: inherit;
+ border-width: 2px;
+ border-style: ridge;
+ border-color: initial;
+}
.application-details-modal .app-properties-main .input-file-field{
width: 220px;
@@ -129,6 +144,10 @@
width: 16em;
}
+.application-details-modal select {
+ width: 16em;
+}
+
.application-details-modal input[type="url"] {
width: 16em;
}
@@ -160,4 +179,19 @@
cursor: pointer;
color: #007bff;
}
- \ No newline at end of file
+.application-deatils-radio-group{
+ display: flex;
+ flex-direction: column;
+}
+
+mat-radio-group{
+ margin-left: 10%;
+}
+
+.modal-footer{
+ width: 100%;
+}
+
+mat-form-field{
+ width: 94%;
+} \ No newline at end of file
diff --git a/portal-FE-os/src/app/pages/application-onboarding/application-details-dialog/application-details-dialog.component.spec.ts b/portal-FE-os/src/app/pages/application-onboarding/application-details-dialog/application-details-dialog.component.spec.ts
index 629e5fa6..d1f352cb 100644
--- a/portal-FE-os/src/app/pages/application-onboarding/application-details-dialog/application-details-dialog.component.spec.ts
+++ b/portal-FE-os/src/app/pages/application-onboarding/application-details-dialog/application-details-dialog.component.spec.ts
@@ -48,6 +48,9 @@ import { InformationModalComponent } from 'src/app/modals/information-modal/info
import { BrowserDynamicTestingModule } from '@angular/platform-browser-dynamic/testing';
import { NgbModalBackdrop } from '@ng-bootstrap/ng-bootstrap/modal/modal-backdrop';
import { ConfirmationModalComponent } from 'src/app/modals/confirmation-modal/confirmation-modal.component';
+import { InformationTooltipComponent } from '../../information-tooltip/information-tooltip.component';
+import { MatTooltipModule } from '@angular/material';
+import { CUSTOM_ELEMENTS_SCHEMA } from '@angular/core';
describe('ApplicationDetailsDialogComponent', () => {
@@ -57,9 +60,10 @@ describe('ApplicationDetailsDialogComponent', () => {
beforeEach(async(() => {
TestBed.configureTestingModule({
- declarations: [ ApplicationDetailsDialogComponent,InformationModalComponent,ConfirmationModalComponent],
- imports: [NgMaterialModule,FormsModule,HttpClientTestingModule,NgbModule.forRoot()],
- providers: [NgbActiveModal]
+ declarations: [ ApplicationDetailsDialogComponent,InformationModalComponent,ConfirmationModalComponent, InformationTooltipComponent],
+ imports: [NgMaterialModule,FormsModule,HttpClientTestingModule,NgbModule.forRoot(), MatTooltipModule],
+ providers: [NgbActiveModal],
+ schemas: [CUSTOM_ELEMENTS_SCHEMA]
}).overrideModule(BrowserDynamicTestingModule, { set: { entryComponents: [InformationModalComponent,ConfirmationModalComponent] } })
.compileComponents();
}));
@@ -80,20 +84,20 @@ describe('ApplicationDetailsDialogComponent', () => {
expect(component.removeImage).toHaveBeenCalledWith();
});
it('saveChanges should return stubbed value', () => {
- component.applicationObj.isCentralAuth = true;
+ component.applicationObj.rolesInAAF = true;
component.applicationObj.isEnabled = false;
spyOn(component, 'saveChanges').and.callThrough();
component.saveChanges();
expect(component.saveChanges).toHaveBeenCalledWith();
component.applicationObj.isEnabled = true;
- component.applicationObj.url = 'www.test.com'
+ component.applicationObj.landingPage = 'www.test.com'
component.applicationObj.restrictedApp =true;
//spyOn(component, 'saveChanges').and.callThrough();
component.saveChanges();
expect(component.saveChanges).toHaveBeenCalledWith();
- component.applicationObj.isCentralAuth = false;
- component.applicationObj.url = 'test'
+ component.applicationObj.rolesInAAF = false;
+ component.applicationObj.landingPage = 'test'
component.applicationObj.restrictedApp =false;
component.applicationObj.isOpen = true;
component.isEditMode =true;
@@ -102,7 +106,7 @@ describe('ApplicationDetailsDialogComponent', () => {
expect(component.saveChanges).toHaveBeenCalledWith();
});
it('saveChanges Central Auth is disabled', () => {
- component.applicationObj.isCentralAuth = false;
+ component.applicationObj.rolesInAAF = false;
component.applicationObj.isEnabled = false;
spyOn(component, 'saveChanges').and.callThrough();
component.saveChanges();
@@ -115,11 +119,11 @@ describe('ApplicationDetailsDialogComponent', () => {
});
it('saveChanges URL validation changes', () => {
- component.applicationObj.isCentralAuth = true;
+ component.applicationObj.rolesInAAF = true;
component.applicationObj.isEnabled = true;
- component.applicationObj.name ='test';
- component.applicationObj.url = 'https://www.test.com'
- component.applicationObj.username ='test'
+ component.applicationObj.appName ='test';
+ component.applicationObj.landingPage = 'https://www.test.com'
+ component.applicationObj.appBasicAuthUsername ='test'
component.applicationObj.nameSpace ='ONAP'
spyOn(component, 'saveChanges').and.callThrough();
component.saveChanges();
diff --git a/portal-FE-os/src/app/pages/application-onboarding/application-details-dialog/application-details-dialog.component.ts b/portal-FE-os/src/app/pages/application-onboarding/application-details-dialog/application-details-dialog.component.ts
index 7aad140a..1b15f801 100644
--- a/portal-FE-os/src/app/pages/application-onboarding/application-details-dialog/application-details-dialog.component.ts
+++ b/portal-FE-os/src/app/pages/application-onboarding/application-details-dialog/application-details-dialog.component.ts
@@ -36,7 +36,7 @@
*
*/
-import { Component, OnInit, Input, Output, EventEmitter, PLATFORM_ID, Inject, Injector} from '@angular/core';
+import { Component, OnInit, Input, Output, EventEmitter, ViewChild, ElementRef, Inject, PLATFORM_ID, Injector } from '@angular/core';
import { NgbActiveModal, NgbModal } from '@ng-bootstrap/ng-bootstrap';
import { IApplications } from 'src/app/shared/model/applications-onboarding/applications';
import { ApplicationsService } from 'src/app/shared/services';
@@ -51,6 +51,7 @@ import { isPlatformBrowser } from '@angular/common';
})
export class ApplicationDetailsDialogComponent implements OnInit {
+ addEditAction: any;
emptyImg = null;
emptyImgForPreview:string;
conflictMessages = {};
@@ -71,34 +72,75 @@ export class ApplicationDetailsDialogComponent implements OnInit {
}
@Input() applicationObj: IApplications;
+ @Input() action: any;
@Output() passEntry: EventEmitter<any> = new EventEmitter();
+ @ViewChild('applicationName') applicationNameElement: ElementRef;
newAppModel = {
'id': null,
- 'name': null,
+ 'appName': null,
'imageUrl': null,
- 'description': null,
- 'notes': null,
- 'url': null,
+ 'appDescription': null,
+ 'appNotes': null,
+ 'landingPage': null,
'alternateUrl': null,
'restUrl': null,
'isOpen': false,
- 'username': null,
- 'appPassword': null,
+ 'appBasicAuthUsername': null,
+ 'appBasicAuthPassword': null,
'thumbnail': this.emptyImg,
'isEnabled': false,
- 'restrictedApp': false,
- 'nameSpace':null,
- 'isCentralAuth': false,
- 'uebTopicName':null,
+ 'applicationType': null,
+ 'rolesInAAF': false,
+ 'nameSpace': null,
+ 'uebTopicName': null,
'uebKey': null,
'uebSecret': null,
- 'imageLink': null
+ 'imageLink': null,
+ 'usesCadi': true,
+ 'modeOfIntegration': null,
+ 'appAck': false,
+ 'restrictedApp': false
};
+ applicationTypeArray: any[] = [
+ { name: 'GUI Application', value: "1" },
+ { name: 'HyperLink Application', value: "2" },
+ { name: 'Non-GUI Application', value: "3" }
+
+ ];
+
+ rolesManagementType: any[] = [
+ { name: 'Roles in Application (Non-Centralized)', value: false },
+ { name: 'Roles in AAF (Centralized)', value: true }
+ ];
+
+ modeOfIntegration: any[] = [
+ { name: 'Portal SDK Based', value: 'sdk' },
+ { name: 'Framework Based', value: 'fw' }
+ ]
ngOnInit() {
- if(this.applicationObj.id){
+
+ this.addEditAction = this.action;
+
+
+ if (this.action === 'add') {
+ this.applicationObj.applicationType = "1";
+ if (this.applicationObj.applicationType == '1') {
+ this.applicationObj.modeOfIntegration = this.modeOfIntegration[0].value;
+ }
+ this.applicationObj.rolesInAAF = true;
+ this.applicationObj.usesCadi = true;
+ this.applicationObj.appAck = false;
+ console.log("Action : ", this.action);
+ console.log("Focus : ", this.applicationNameElement.nativeElement);
+ setTimeout(() => { // this will make the execution after the above boolean has changed
+ this.applicationNameElement.nativeElement.focus();
+ }, 0);
+ }
+
+ if (this.applicationObj.id) {
this.isEditMode = true;
}else{
this.isEditMode = false;
@@ -167,59 +209,91 @@ export class ApplicationDetailsDialogComponent implements OnInit {
/** Add/Edit Application Method*/
saveChanges() {
//console.log("addNewApplication getting called..");
- if(this.applicationObj.isCentralAuth){
+ if (this.applicationObj.rolesInAAF) {
+ //if valid.
+ if (this.applicationObj.applicationType == "1") {
+ console.log("Gui Application valodations");
//if valid.
- if(!this.applicationObj.isEnabled){
- if(((this.applicationObj.name == 'undefined' || !this.applicationObj.name)||(this.applicationObj.nameSpace == 'undefined'
- || !this.applicationObj.nameSpace) ||(this.applicationObj.username == 'undefined' || !this.applicationObj.username))) {
- this.openConfirmationModal('','Please fill in all required fields(*) for centralized application');
+ if (!this.applicationObj.isEnabled) {
+ if (((this.applicationObj.appName == 'undefined' || !this.applicationObj.appName) || (this.applicationObj.nameSpace == 'undefined'
+ || !this.applicationObj.nameSpace) || (this.applicationObj.appBasicAuthUsername == 'undefined' || !this.applicationObj.appBasicAuthUsername))) {
+ this.openConfirmationModal('', 'Please fill in all required fields(*) for centralized application');
return;
}
}
- if(this.applicationObj.isEnabled){
- if(((this.applicationObj.name == 'undefined' || !this.applicationObj.name)
- ||(this.applicationObj.url == 'undefined'|| !this.applicationObj.url)
- ||(this.applicationObj.username == 'undefined' || !this.applicationObj.username)||(this.applicationObj.nameSpace == 'undefined'
- || !this.applicationObj.nameSpace))) {
+ if (this.applicationObj.isEnabled) {
+ if (((this.applicationObj.appName == 'undefined' || !this.applicationObj.appName)
+ || (this.applicationObj.landingPage == 'undefined' || !this.applicationObj.landingPage)
+ || (this.applicationObj.appBasicAuthUsername == 'undefined' || !this.applicationObj.appBasicAuthUsername) || (this.applicationObj.nameSpace == 'undefined'
+ || !this.applicationObj.nameSpace))) {
- this.openConfirmationModal('','Please fill in all required fields(*) for centralized active application');
+ this.openConfirmationModal('', 'Please fill in all required fields(*) for centralized active application');
return;
}
}
- }else{
- if(!this.applicationObj.isEnabled) {
- if((this.applicationObj.name == 'undefined' || !this.applicationObj.name)){
- this.openConfirmationModal('','Please fill in all required field(*) ApplicationName to Save the applictaion');
- return;
- }
- }else if(this.applicationObj.isEnabled && !this.applicationObj.restrictedApp){
- if((this.applicationObj.name == 'undefined' || !this.applicationObj.name)
- ||(this.applicationObj.url == 'undefined'|| !this.applicationObj.url)
- ||(this.applicationObj.username == 'undefined' || !this.applicationObj.username)||
- (this.applicationObj.appPassword== 'undefined' || !this.applicationObj.appPassword)) {
-
- this.openConfirmationModal('','Please fill in all required fields(*) along with password as the app is not centralized');
- return;
+ } else if (this.applicationObj.applicationType == "3") {
+ console.log("Non-Gui Application valodations");
+ if (!this.applicationObj.isEnabled) {
+ if (((this.applicationObj.appName == 'undefined' || !this.applicationObj.appName) || (this.applicationObj.nameSpace == 'undefined'
+ || !this.applicationObj.nameSpace) || (this.applicationObj.appBasicAuthUsername == 'undefined' || !this.applicationObj.appBasicAuthUsername))) {
+ this.openConfirmationModal('', 'Please fill in all required fields(*) for centralized application');
+ return;
}
- }else if(this.applicationObj.isEnabled && this.applicationObj.restrictedApp){
- if((this.applicationObj.name == 'undefined' || !this.applicationObj.name) ||(this.applicationObj.url == 'undefined'
- || !this.applicationObj.url)){
- this.openConfirmationModal('','Please fill in all required fields(*)');
- return;
- }
}
+
+ if (this.applicationObj.isEnabled) {
+ if (((this.applicationObj.appName == 'undefined' || !this.applicationObj.appName)
+ || (this.applicationObj.appBasicAuthUsername == 'undefined' || !this.applicationObj.appBasicAuthUsername) || (this.applicationObj.nameSpace == 'undefined'
+ || !this.applicationObj.nameSpace))) {
+
+ this.openConfirmationModal('', 'Please fill in all required fields(*) for centralized active application');
+ return;
+ }
+ }
+ }
+ } else {
+ console.log("Non-centralized applications validation");
+ this.applicationObj.appAck = null;
+ if (!this.applicationObj.isEnabled) {
+ if ((this.applicationObj.appName == 'undefined' || !this.applicationObj.appName)) {
+ this.openConfirmationModal('', 'Please fill in all required field(*) ApplicationName to Save the applictaion');
+ return;
+ }
+ } else if (this.applicationObj.isEnabled && (this.applicationObj.applicationType == "1")) {
+ if ((this.applicationObj.appName == 'undefined' || !this.applicationObj.appName)
+ || (this.applicationObj.landingPage == 'undefined' || !this.applicationObj.landingPage)
+ || (this.applicationObj.appBasicAuthUsername == 'undefined' || !this.applicationObj.appBasicAuthUsername) ||
+ (this.applicationObj.appBasicAuthPassword == 'undefined' || !this.applicationObj.appBasicAuthPassword)) {
+
+ this.openConfirmationModal('', 'Please fill in all required fields(*) along with password as the app is not centralized');
+ return;
+ }
+ } else if (this.applicationObj.isEnabled && (this.applicationObj.applicationType == "3")) {
+ console.log("Non gui validation");
+ if ((this.applicationObj.appName == 'undefined' || !this.applicationObj.appName)
+ || (this.applicationObj.appBasicAuthUsername == 'undefined' || !this.applicationObj.appBasicAuthUsername)) {
+ this.openConfirmationModal('', 'Please fill in all required fields(*)');
+ return;
+ }
+ } else if (this.applicationObj.isEnabled && (this.applicationObj.applicationType == "2")) {
+ if ((this.applicationObj.appName == 'undefined' || !this.applicationObj.appName) || (this.applicationObj.landingPage == 'undefined'
+ || !this.applicationObj.landingPage)) {
+ this.openConfirmationModal('', 'Please fill in all required fields(*)');
+ return;
+ }
+ }
}
//URL Validation
- if(this.applicationObj.isEnabled){
- if(this.applicationObj.url && this.applicationObj.url !='undefined' && this.applicationObj.url != ''){
- let isValidURL = this.isUrlValid(this.applicationObj.url);
- if(!isValidURL){
- this.openConfirmationModal('Error','Application URL must be a valid URL.');
+ if (this.applicationObj.isEnabled && this.applicationObj.applicationType == "1") {
+ if (this.applicationObj.landingPage && this.applicationObj.landingPage != 'undefined' && this.applicationObj.landingPage != '') {
+ let isValidURL = this.isUrlValid(this.applicationObj.landingPage);
+ if (!isValidURL) {
+ this.openConfirmationModal('Error', 'Application URL must be a valid URL.');
return;
}
- }else{
- this.openConfirmationModal('Error','Application URL is required.');
+ } else {
+ this.openConfirmationModal('Error', 'Application URL is required.');
return;
}
}
@@ -227,34 +301,40 @@ export class ApplicationDetailsDialogComponent implements OnInit {
this.isSaving = true;
// For a restricted app, null out all irrelevant fields
- if(this.applicationObj.restrictedApp) {
+ if (this.applicationObj.applicationType == "2") {
+ console.log("Hyperlinka pplication validation");
this.newAppModel.restUrl = null;
this.newAppModel.isOpen = true;
- this.newAppModel.username = null;
- this.newAppModel.appPassword = null;
+ this.newAppModel.appBasicAuthUsername = null;
+ this.newAppModel.appBasicAuthPassword = null;
this.newAppModel.uebTopicName = null;
this.newAppModel.uebKey = null;
this.newAppModel.uebSecret = null;
+ this.newAppModel.restrictedApp = true;
/**Need to set below fields values based on input provided in the dialog */
- this.newAppModel.restrictedApp = this.applicationObj.restrictedApp;
- this.newAppModel.name = this.applicationObj.name;
- this.newAppModel.url = this.applicationObj.url;
- if(this.applicationObj.isEnabled){
+ this.newAppModel.applicationType = this.applicationObj.applicationType;
+ this.newAppModel.appName = this.applicationObj.appName;
+ this.newAppModel.landingPage = this.applicationObj.landingPage;
+ this.newAppModel.usesCadi = this.applicationObj.usesCadi;
+ if (this.applicationObj.isEnabled) {
this.newAppModel.isEnabled = this.applicationObj.isEnabled;
}else{
this.newAppModel.isEnabled = false;
}
+ console.log("New Model : ", this.newAppModel);
+ } else {
- }else{
-
- /**Need to set below fields values based on input provided in the dialog */
- this.newAppModel.restrictedApp = false;
- this.newAppModel.name = this.applicationObj.name;
- this.newAppModel.url = this.applicationObj.url;
- this.newAppModel.restUrl = this.applicationObj.restUrl;
- this.newAppModel.username = this.applicationObj.username;
- this.newAppModel.appPassword = this.applicationObj.appPassword;
+ /**Need to set below fields values based on input provided in the dialog */
+ this.newAppModel.applicationType = this.applicationObj.applicationType;
+ this.newAppModel.appName = this.applicationObj.appName;
+ this.newAppModel.landingPage = this.applicationObj.landingPage;
+ this.newAppModel.restUrl = this.applicationObj.restUrl;
+ this.newAppModel.appBasicAuthUsername = this.applicationObj.appBasicAuthUsername;
+ this.newAppModel.appBasicAuthPassword = this.applicationObj.appBasicAuthPassword;
+ this.newAppModel.modeOfIntegration = this.applicationObj.modeOfIntegration;
+ this.newAppModel.usesCadi = this.applicationObj.usesCadi;
+ this.newAppModel.appAck = this.applicationObj.appAck;
if(this.applicationObj.isEnabled){
this.newAppModel.isEnabled = this.applicationObj.isEnabled;
@@ -269,11 +349,12 @@ export class ApplicationDetailsDialogComponent implements OnInit {
}
//console.log("this.applicationObj.isOpen",this.applicationObj.isOpen);
- if(this.applicationObj.isCentralAuth){
- this.newAppModel.isCentralAuth = this.applicationObj.isCentralAuth;
- }else{
- this.newAppModel.isCentralAuth = false;
- }
+ if (this.applicationObj.rolesInAAF) {
+ this.newAppModel.rolesInAAF = this.applicationObj.rolesInAAF;
+ } else {
+ this.newAppModel.rolesInAAF = false;
+ this.newAppModel.usesCadi = false;
+ }
}
@@ -283,7 +364,17 @@ export class ApplicationDetailsDialogComponent implements OnInit {
this.newAppModel.nameSpace = this.applicationObj.nameSpace;
}
- if(this.isEditMode){
+ if (this.applicationObj.applicationType == "2" || this.applicationObj.applicationType == "3") {
+ this.applicationObj.modeOfIntegration = null;
+ }
+
+ if (this.newAppModel.applicationType == "2" || this.newAppModel.applicationType == "3") {
+ this.newAppModel.modeOfIntegration = null;
+ }
+
+ if (this.isEditMode) {
+ console.log("Edit application Object : ", JSON.stringify(this.applicationObj));
+ console.log("Mode Of iNtegration : ", this.applicationObj.modeOfIntegration);
this.applicationsService.updateOnboardingApp(this.applicationObj)
.subscribe( _data => {
this.result = _data;
diff --git a/portal-FE-os/src/app/pages/application-onboarding/application-onboarding.component.html b/portal-FE-os/src/app/pages/application-onboarding/application-onboarding.component.html
index 8a678917..19f5d8ae 100644
--- a/portal-FE-os/src/app/pages/application-onboarding/application-onboarding.component.html
+++ b/portal-FE-os/src/app/pages/application-onboarding/application-onboarding.component.html
@@ -46,7 +46,7 @@
<input matInput type="text" (keyup)="applyFilter($event.target.value)" placeholder="Search in entire table">
</mat-form-field>
- <button type="button" style="float: right;" class="btn btn-primary" (click)="openAddApplicationModal('')">
+ <button type="button" style="float: right;" class="btn btn-primary" (click)="openAddApplicationModal('', 'add')">
<i class="icon ion-md-person-add"></i>&nbsp;Add App
</button>
@@ -56,7 +56,7 @@
<!-- Thumbnail Column -->
<ng-container matColumnDef="thumbnail">
<th id="col1" mat-header-cell *matHeaderCellDef> Thumbnail </th>
- <td (click)="openAddApplicationModal(element)" id="rowheader_t1_{{i}}-thumbnail"
+ <td (click)="openAddApplicationModal(element, 'edit')" id="rowheader_t1_{{i}}-thumbnail"
mat-cell *matCellDef="let element; let i = index;">
<div><img class="small-thumbnail" src={{element.imageLink}}></div>
</td>
@@ -65,64 +65,71 @@
<!-- Application Name Column -->
<ng-container matColumnDef="applicationName">
<th id="col2" mat-header-cell *matHeaderCellDef> Application Name </th>
- <td (click)="openAddApplicationModal(element)" id="rowheader_t1_{{i}}-applicationName"
- mat-cell *matCellDef="let element; let i=index;"> {{element.name}} </td>
+ <td (click)="openAddApplicationModal(element, 'edit')" id="rowheader_t1_{{i}}-applicationName"
+ mat-cell *matCellDef="let element; let i=index;"> {{element.appName}} </td>
</ng-container>
<!-- Active Column -->
<ng-container matColumnDef="active">
<th id="col2" mat-header-cell *matHeaderCellDef> Active </th>
- <td (click)="openAddApplicationModal(element)" id="rowheader_t1_{{i}}-active"
+ <td (click)="openAddApplicationModal(element, 'edit')" id="rowheader_t1_{{i}}-active"
mat-cell *matCellDef="let element; let i=index;"> {{(element.isEnabled) ? 'yes' : 'no'}} </td>
</ng-container>
<!-- Integration Type Column -->
<ng-container matColumnDef="integrationType">
<th id="col2" mat-header-cell *matHeaderCellDef> Integration Type </th>
- <td (click)="openAddApplicationModal(element)" id="rowheader_t1_{{i}}-integrationType"
- mat-cell *matCellDef="let element; let i=index;"> {{(element.restrictedApp) ? 'link' : 'standard'}} </td>
+ <td (click)="openAddApplicationModal(element, 'edit')" id="rowheader_t1_{{i}}-integrationType"
+ mat-cell *matCellDef="let element; let i=index;"> {{(element.applicationType == 2) ? 'link' : 'standard'}} </td>
+ </ng-container>
+
+ <!-- Mode Of Integration Type Column -->
+ <ng-container matColumnDef="modeOfIntegration">
+ <th id="col2" mat-header-cell *matHeaderCellDef> Mode Of Integration </th>
+ <td (click)="openAddApplicationModal(element, 'edit')" id="rowheader_t1_{{i}}-modeOfIntegration"
+ mat-cell *matCellDef="let element; let i=index;"> {{element.modeOfIntegration}} </td>
</ng-container>
<!-- Guest Access Column-->
<ng-container matColumnDef="guestAccess">
<th id="col2" mat-header-cell *matHeaderCellDef> Guest Access </th>
- <td (click)="openAddApplicationModal(element)" id="rowheader_t1_{{i}}-guestAccess"
+ <td (click)="openAddApplicationModal(element, 'edit')" id="rowheader_t1_{{i}}-guestAccess"
mat-cell *matCellDef="let element; let i=index;">{{(element.isOpen) ? 'yes' : 'no'}} </td>
</ng-container>
<!-- url column -->
- <ng-container matColumnDef="url">
- <th id="col2" mat-header-cell *matHeaderCellDef> Url </th>
- <td (click)="openAddApplicationModal(element)" id="rowheader_t1_{{i}}-url"
- mat-cell *matCellDef="let element; let i=index;">{{element.url}} </td>
+ <ng-container matColumnDef="landingPage">
+ <th id="col2" mat-header-cell *matHeaderCellDef> Landing Page </th>
+ <td (click)="openAddApplicationModal(element, 'edit')" id="rowheader_t1_{{i}}-url"
+ mat-cell *matCellDef="let element; let i=index;">{{element.landingPage}} </td>
</ng-container>
<!-- rest url column -->
<ng-container matColumnDef="restURL">
<th id="col2" mat-header-cell *matHeaderCellDef> REST Url </th>
- <td (click)="openAddApplicationModal(element)" id="rowheader_t1_{{i}}-restURL"
+ <td (click)="openAddApplicationModal(element, 'edit')" id="rowheader_t1_{{i}}-restURL"
mat-cell *matCellDef="let element; let i=index;">{{element.restUrl}} </td>
</ng-container>
<!-- communicationKey column -->
<ng-container matColumnDef="communicationKey">
<th id="col2" mat-header-cell *matHeaderCellDef> Communication Key </th>
- <td (click)="openAddApplicationModal(element)" id="rowheader_t1_{{i}}-communicationKey"
+ <td (click)="openAddApplicationModal(element, 'edit')" id="rowheader_t1_{{i}}-communicationKey"
mat-cell *matCellDef="let element; let i=index;">{{element.uebKey}} </td>
</ng-container>
<!-- applicationNamespace column -->
<ng-container matColumnDef="applicationNamespace">
<th id="col2" mat-header-cell *matHeaderCellDef> Application Namespace </th>
- <td (click)="openAddApplicationModal(element)" id="rowheader_t1_{{i}}-applicationNamespace"
+ <td (click)="openAddApplicationModal(element, 'edit')" id="rowheader_t1_{{i}}-applicationNamespace"
mat-cell *matCellDef="let element; let i=index;">{{element.nameSpace}} </td>
</ng-container>
<!-- centralAuthAccess column -->
<ng-container matColumnDef="centralAuthAccess">
<th id="col2" mat-header-cell *matHeaderCellDef> Central Auth Access </th>
- <td (click)="openAddApplicationModal(element)" id="rowheader_t1_{{i}}-centralAuthAccess"
- mat-cell *matCellDef="let element; let i=index;">{{(element.isCentralAuth) ? 'yes' : 'no'}} </td>
+ <td (click)="openAddApplicationModal(element, 'edit')" id="rowheader_t1_{{i}}-centralAuthAccess"
+ mat-cell *matCellDef="let element; let i=index;">{{(element.rolesInAAF) ? 'yes' : 'no'}} </td>
</ng-container>
<!-- Delete Column -->
diff --git a/portal-FE-os/src/app/pages/application-onboarding/application-onboarding.component.ts b/portal-FE-os/src/app/pages/application-onboarding/application-onboarding.component.ts
index 8cbf1d28..a2c759dc 100644
--- a/portal-FE-os/src/app/pages/application-onboarding/application-onboarding.component.ts
+++ b/portal-FE-os/src/app/pages/application-onboarding/application-onboarding.component.ts
@@ -61,7 +61,7 @@ export class ApplicationOnboardingComponent implements OnInit {
emptyImgForPreview: string;
isUserSuperAdmin: boolean = false;
displayedColumns: string[] = ['thumbnail', 'applicationName','active',
- 'integrationType', 'guestAccess', 'url','restURL',
+ 'integrationType', 'modeOfIntegration', 'guestAccess', 'landingPage','restURL',
'communicationKey', 'applicationNamespace', 'centralAuthAccess'];
dataSource = new MatTableDataSource(this.appsList);
@ViewChild(MatSort) sort: MatSort;
@@ -112,9 +112,11 @@ export class ApplicationOnboardingComponent implements OnInit {
this.dataSource.paginator = this.paginator;
};
- openAddApplicationModal(rowData: any) {
+ openAddApplicationModal(rowData: any, action:any) {
+ console.log("Action : ", action);
const modalRef = this.ngbModal.open(ApplicationDetailsDialogComponent, { size: 'lg' });
modalRef.componentInstance.title = 'Application Details';
+ modalRef.componentInstance.action = action;
//console.log("selectedData in parent",rowData);
if(rowData != 'undefined' && rowData){
modalRef.componentInstance.applicationObj = rowData;
@@ -162,7 +164,7 @@ export class ApplicationOnboardingComponent implements OnInit {
if(res) {
this.isUserSuperAdmin = true;
this.displayedColumns = ['thumbnail', 'applicationName','active',
- 'integrationType', 'guestAccess', 'url','restURL',
+ 'integrationType', 'modeOfIntegration', 'guestAccess', 'landingPage','restURL',
'communicationKey', 'applicationNamespace', 'centralAuthAccess', 'delete'];
}
//console.log("isUserSuperAdmin :: ",this.isUserSuperAdmin);
diff --git a/portal-FE-os/src/app/pages/information-tooltip/information-tooltip.component.html b/portal-FE-os/src/app/pages/information-tooltip/information-tooltip.component.html
new file mode 100644
index 00000000..92f13c8c
--- /dev/null
+++ b/portal-FE-os/src/app/pages/information-tooltip/information-tooltip.component.html
@@ -0,0 +1,3 @@
+<span matTooltip="{{textMessage}}" [matTooltipPosition]="'above'">
+ <i class="icon ion-md-help-circle" style="color: #087ac2;"></i>
+</span> \ No newline at end of file
diff --git a/portal-FE-os/src/app/pages/information-tooltip/information-tooltip.component.scss b/portal-FE-os/src/app/pages/information-tooltip/information-tooltip.component.scss
new file mode 100644
index 00000000..3d72a79e
--- /dev/null
+++ b/portal-FE-os/src/app/pages/information-tooltip/information-tooltip.component.scss
@@ -0,0 +1,13 @@
+.material-icons {
+ font-size: 17px !important;
+ cursor: default;
+}
+
+.mat-tooltip {
+ font-size: 1.5rem !important;
+ }
+
+ img{
+ width: 16px;
+ }
+ \ No newline at end of file
diff --git a/portal-FE-os/src/app/pages/information-tooltip/information-tooltip.component.spec.ts b/portal-FE-os/src/app/pages/information-tooltip/information-tooltip.component.spec.ts
new file mode 100644
index 00000000..9c8c6214
--- /dev/null
+++ b/portal-FE-os/src/app/pages/information-tooltip/information-tooltip.component.spec.ts
@@ -0,0 +1,8 @@
+import { async, ComponentFixture, TestBed } from '@angular/core/testing';
+
+import { InformationTooltipComponent } from './information-tooltip.component';
+
+describe('InformationTooltipComponent', () => {
+
+
+});
diff --git a/portal-FE-os/src/app/pages/information-tooltip/information-tooltip.component.ts b/portal-FE-os/src/app/pages/information-tooltip/information-tooltip.component.ts
new file mode 100644
index 00000000..3c05d074
--- /dev/null
+++ b/portal-FE-os/src/app/pages/information-tooltip/information-tooltip.component.ts
@@ -0,0 +1,19 @@
+import { Component, OnInit, Input } from '@angular/core';
+
+@Component({
+ selector: 'app-information-tooltip',
+ templateUrl: './information-tooltip.component.html',
+ styleUrls: ['./information-tooltip.component.scss']
+})
+export class InformationTooltipComponent implements OnInit {
+
+ @Input() textMessage : any;
+ constructor() { }
+
+ message : string;
+ ngOnInit() {
+ console.log("Message ", this.textMessage);
+ this.message = this.textMessage;
+ }
+
+}
diff --git a/portal-FE-os/src/app/pages/pages.module.ts b/portal-FE-os/src/app/pages/pages.module.ts
index 7ccb3f95..b7163da3 100644
--- a/portal-FE-os/src/app/pages/pages.module.ts
+++ b/portal-FE-os/src/app/pages/pages.module.ts
@@ -35,7 +35,7 @@
*
*
*/
-import { NgModule } from '@angular/core';
+import { NgModule, CUSTOM_ELEMENTS_SCHEMA } from '@angular/core';
import { CommonModule } from '@angular/common';
import { ReactiveFormsModule, FormsModule } from '@angular/forms';
import { MatIconModule } from '@angular/material/icon';
@@ -96,7 +96,9 @@ import { ApplicationPipesModule } from '../shared/pipes/application-pipes.module
import { UsersComponent } from './users/users.component';
import { NewUserModalComponent } from './users/new-user-modal/new-user-modal.component';
import { BulkUserComponent } from './users/bulk-user/bulk-user.component';
+import { InformationTooltipComponent } from './information-tooltip/information-tooltip.component';
import { UserDetailsFormComponent } from './users/user-details-form/user-details-form.component';
+import { MatTooltipModule } from '@angular/material';
@NgModule({
@@ -149,7 +151,8 @@ import { UserDetailsFormComponent } from './users/user-details-form/user-details
DashboardWidgetCatalogComponent,
FunctionalMenuDialogComponent,
GetAccessComponent,
- UserDetailsFormComponent
+ UserDetailsFormComponent,
+ InformationTooltipComponent
],
imports: [
CommonModule,
@@ -163,7 +166,8 @@ import { UserDetailsFormComponent } from './users/user-details-form/user-details
MatIconModule,
MatCheckboxModule,
FormsModule,
- PluginModule
+ PluginModule,
+ MatTooltipModule
],
entryComponents: [
SchedulerComponent,
@@ -193,7 +197,9 @@ import { UserDetailsFormComponent } from './users/user-details-form/user-details
useClass: HeaderInterceptor,
multi: true,
}],
-
+ schemas: [
+ CUSTOM_ELEMENTS_SCHEMA
+ ]
})
export class PagesModule {