Portal Non-Gui application onboarding changes 59/109759/6
authorRachitha Ramappa <rachitha.ramappa@att.com>
Thu, 2 Jul 2020 07:26:08 +0000 (12:56 +0530)
committerMuni Mohan Kunchi <munmohan@att.com>
Fri, 17 Jul 2020 20:48:53 +0000 (16:48 -0400)
Change-Id: Ib878398995e1d7a407d44ea6113c05aab2dd1625
Issue-ID: PORTAL-935
Signed-off-by: Muni Mohan Kunchi <munmohan@att.com>
16 files changed:
ecomp-portal-DB-common/PortalDDLMySql_3_3_Common.sql [new file with mode: 0644]
ecomp-portal-DB-os/PortalMySql_3_3_Add.sql [new file with mode: 0644]
ecomp-portal-DB-os/PortalMySql_3_3_Remove.sql [new file with mode: 0644]
ecomp-portal-DB-os/README.md
portal-FE-common/src/app/pages/dashboard-widget-catalog/dashboard-widget-catalog.component.ts
portal-FE-os/src/app/pages/application-onboarding/application-details-dialog/application-details-dialog.component.html
portal-FE-os/src/app/pages/application-onboarding/application-details-dialog/application-details-dialog.component.scss
portal-FE-os/src/app/pages/application-onboarding/application-details-dialog/application-details-dialog.component.spec.ts
portal-FE-os/src/app/pages/application-onboarding/application-details-dialog/application-details-dialog.component.ts
portal-FE-os/src/app/pages/application-onboarding/application-onboarding.component.html
portal-FE-os/src/app/pages/application-onboarding/application-onboarding.component.ts
portal-FE-os/src/app/pages/information-tooltip/information-tooltip.component.html [new file with mode: 0644]
portal-FE-os/src/app/pages/information-tooltip/information-tooltip.component.scss [new file with mode: 0644]
portal-FE-os/src/app/pages/information-tooltip/information-tooltip.component.spec.ts [new file with mode: 0644]
portal-FE-os/src/app/pages/information-tooltip/information-tooltip.component.ts [new file with mode: 0644]
portal-FE-os/src/app/pages/pages.module.ts

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 (file)
index 0000000..180f1f6
--- /dev/null
@@ -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 (file)
index 0000000..509e965
--- /dev/null
@@ -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 (file)
index 0000000..f1aba38
--- /dev/null
@@ -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
index c6c830c..d3a7d9f 100644 (file)
@@ -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
 
index dbdd292..14e5773 100644 (file)
@@ -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 {
             }
             }
           }
+                 }
         });
       }
     });
index bef37b8..6d0c544 100644 (file)
 -->
 
 <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
index 0e042a9..1106eb5 100644 (file)
  *
  * 
  */
+
+ .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;
 }
    
 .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;
     width: 16em;
 }
 
+.application-details-modal select {
+    width: 16em;
+}
+
 .application-details-modal input[type="url"] {
     width: 16em;
 }
     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
index 629e5fa..d1f352c 100644 (file)
@@ -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();
index 7aad140..1b15f80 100644 (file)
@@ -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;
index 8a67891..19f5d8a 100644 (file)
@@ -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>
                     <!-- 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 -->
index 8cbf1d2..a2c759d 100644 (file)
@@ -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 (file)
index 0000000..92f13c8
--- /dev/null
@@ -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 (file)
index 0000000..3d72a79
--- /dev/null
@@ -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 (file)
index 0000000..9c8c621
--- /dev/null
@@ -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 (file)
index 0000000..3c05d07
--- /dev/null
@@ -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;
+  }
+
+}
index 7ccb3f9..b7163da 100644 (file)
@@ -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 {