From cdf5cd2b9fad0e05f44956738b41b5ed912ca9ca Mon Sep 17 00:00:00 2001 From: Kashif Majeed Date: Thu, 30 Jan 2025 15:33:55 +0500 Subject: [PATCH] Angular Version Upgraded to 13.X & Enhancements in Voice Module & Bug Fixing --- .devel/ictdialer.spec | 81 - .devel/{ictdialer.conf => ictfax.conf} | 4 +- .devel/ictfax.spec | 82 + .eslintrc.js | 18 + .gitignore | 1 + .stylelintrc.json | 72 - .vscode/settings.json | 3 +- CHANGELOG.md | 89 +- CODE_OF_CONDUCT.md | 27 + CONTRIBUTING.md | 221 + DEV_DOCS.md | 1 + INSTALL.md | 125 +- LICENSE | 21 - LICENSE.md | 633 + README.md | 231 +- angular.json | 49 +- doc/ApiGuide.md | 976 + doc/ApiTutorial.md | 33 + doc/README.md | 191 + doc/TODO.md | 117 +- doc/admin-guide.md | 44 +- doc/api.md | 102 + doc/build-guide.md | 18 +- doc/ictdialer_user_guide.pdf | Bin 1452538 -> 0 bytes doc/screenshots/add_extension.png | Bin 0 -> 27152 bytes doc/screenshots/add_provider.png | Bin 0 -> 32635 bytes doc/screenshots/add_userictfax.png | Bin 0 -> 27710 bytes doc/screenshots/auth.png | Bin 0 -> 15978 bytes doc/screenshots/service.png | Bin 0 -> 28060 bytes doc/user-guide.md | 181 + package-lock.json | 33762 ++++++++-------- package.json | 118 +- src/app/@core/core.module.ts | 26 +- src/app/@core/data/data.module.ts | 46 + .../components/footer/footer.component.ts | 2 +- .../components/header/header.component.html | 23 +- .../components/header/header.component.scss | 2 +- .../components/header/header.component.ts | 14 +- .../search-input/search-input.component.scss | 2 +- .../layouts/one-column/one-column.layout.scss | 2 +- .../three-columns/three-columns.layout.scss | 2 +- .../two-columns/two-columns.layout.scss | 2 +- src/app/@theme/theme.module.ts | 6 +- src/app/app-config.model.ts | 8 + src/app/app-routing.module.ts | 14 +- src/app/app.component.ts | 14 +- src/app/app.module.ts | 152 +- src/app/app.service.ts | 35 +- src/app/auth-guard.service.ts | 20 +- src/app/auth/auth-routing.module.ts | 10 + src/app/auth/auth.module.ts | 21 +- src/app/auth/login/login.component.html | 6 + src/app/auth/logout/logout.component.html | 3 +- .../request-password.component.html | 47 + .../request-password.component.scss | 3 + .../request-password.component.ts | 54 + .../reset-password.component.html | 76 + .../reset-password.component.scss | 25 + .../reset-password.component.ts | 81 + src/app/auth/signin/auth-config.ts | 50 + src/app/auth/signin/signin.component.html | 22 + .../signin/signin.component.scss} | 0 src/app/auth/signin/signin.component.ts | 119 + src/app/auth/signin/signin.service.ts | 70 + src/app/file-download-helper.ts | 18 +- src/app/md5.ts | 231 - src/app/modal.component.ts | 1 - .../pages/campaigns/campaign-component.html | 162 +- .../pages/campaigns/campaign-component.scss | 64 - src/app/pages/campaigns/campaign-component.ts | 9 +- .../campaign-datasource.component.ts | 5 +- ...nent.scss => campaign-from-component.scss} | 0 .../campaigns/campaign-routing.module.ts | 34 +- src/app/pages/campaigns/campaign.component.ts | 2 +- src/app/pages/campaigns/campaign.module.ts | 11 +- src/app/pages/campaigns/campaign.service.ts | 5 - src/app/pages/campaigns/campaign.ts | 18 +- .../campaign-document-component.html | 82 +- .../campaign-document-component.scss | 3 - .../campaign-document-component.ts | 35 +- .../sendemail/campaign-email-component.html | 87 - .../sendemail/campaign-email-component.ts | 115 - .../sendivr/campaign-ivr-component.html | 71 - .../sendivr/campaign-ivr-component.ts | 99 - .../sendsms/campaign-form-component.html | 89 - .../sendsms/campaign-form-component.ts | 115 - .../sendvoice/campaign-voice-component.html | 88 - .../sendvoice/campaign-voice-component.ts | 116 - src/app/pages/cid/assign-cid-component.html | 29 + .../assign-cid-component.scss} | 0 src/app/pages/cid/assign-cid-component.ts | 72 + src/app/pages/cid/batch-cid-component.html | 39 + .../batch-cid-component.scss} | 0 src/app/pages/cid/batch-cid-component.ts | 33 + src/app/pages/cid/cid-component.html | 56 + src/app/pages/cid/cid-component.scss | 61 + src/app/pages/cid/cid-component.ts | 120 + src/app/pages/cid/cid-database.component.ts | 13 + src/app/pages/cid/cid-datasource.component.ts | 55 + src/app/pages/cid/cid-form-component.html | 41 + src/app/pages/cid/cid-form-component.scss | 4 + src/app/pages/cid/cid-form-component.ts | 92 + src/app/pages/cid/cid-routing.module.ts | 57 + .../ivr.component.ts => cid/cid.component.ts} | 2 +- src/app/pages/cid/cid.module.ts | 43 + src/app/pages/cid/cid.service.ts | 119 + src/app/pages/cid/cid.ts | 21 + src/app/pages/cid/import-cid-component.html | 24 + .../import-cid-component.scss} | 0 src/app/pages/cid/import-cid-component.ts | 78 + src/app/pages/contact/contact-component.html | 98 +- src/app/pages/contact/contact-component.ts | 137 +- .../contact/contact-datasource.component.ts | 4 +- .../pages/contact/contact-form-component.html | 167 +- .../pages/contact/contact-form-component.ts | 2 +- .../pages/contact/contact-routing.module.ts | 9 +- src/app/pages/contact/contact.module.ts | 14 +- src/app/pages/contact/contact.service.ts | 15 +- .../pages/contact/group/group-component.html | 36 +- .../pages/contact/group/group-component.scss | 3 +- .../pages/contact/group/group-component.ts | 17 +- .../group/group-datasource.component.ts | 4 +- .../contact/group/group-form-component.html | 68 +- .../contact/group/group-form-component.ts | 61 +- src/app/pages/contact/group/group.service.ts | 2 +- .../contact_dnc/contact_dnc-component.html | 89 + .../contact_dnc/contact_dnc-component.scss | 21 + .../contact_dnc/contact_dnc-component.ts | 158 + .../contact_dnc-database.component.ts | 13 + .../contact_dnc-datasource.component.ts | 78 + .../contact_dnc-form-component.html | 104 + .../contact_dnc-form-component.scss} | 0 .../contact_dnc/contact_dnc-form-component.ts | 86 + .../contact_dnc/contact_dnc-routing.module.ts | 46 + .../contact_dnc/contact_dnc.component.ts | 10 + .../pages/contact_dnc/contact_dnc.module.ts | 43 + .../pages/contact_dnc/contact_dnc.service.ts | 75 + .../message.ts => contact_dnc/contact_dnc.ts} | 6 +- .../crm-settings/crm-settings-component.ts | 89 - .../pages/crmconfig/crmconfig-component.ts | 123 - src/app/pages/crmconfig/crmconfig.service.ts | 35 - src/app/pages/crmconfig/crmconfig.ts | 5 - .../pages/dashboard/dashboard.component.html | 377 +- .../pages/dashboard/dashboard.component.ts | 190 +- src/app/pages/dashboard/dashboard.module.ts | 12 +- src/app/pages/dashboard/dashboard.service.ts | 22 +- .../default_settings-component.html | 17 + .../default_settings-component.scss | 4 + .../default_settings-component.ts | 34 + .../default_settings.module.ts} | 15 +- .../default_settings.service.ts | 23 + .../default_settings/default_settings.ts | 3 + src/app/pages/did/assign-did-component.html | 29 + .../assign-did-component.scss} | 0 src/app/pages/did/assign-did-component.ts | 72 + src/app/pages/did/batch-did-component.html | 39 + .../batch-did-component.scss} | 0 src/app/pages/did/batch-did-component.ts | 33 + src/app/pages/did/did-component.html | 59 + src/app/pages/did/did-component.scss | 61 + src/app/pages/did/did-component.ts | 124 + src/app/pages/did/did-database.component.ts | 13 + src/app/pages/did/did-datasource.component.ts | 57 + src/app/pages/did/did-form-component.html | 37 + src/app/pages/did/did-form-component.scss | 4 + src/app/pages/did/did-form-component.ts | 64 + src/app/pages/did/did-routing.module.ts | 57 + src/app/pages/did/did.component.ts | 10 + src/app/pages/did/did.module.ts | 41 + src/app/pages/did/did.service.ts | 119 + src/app/pages/did/did.ts | 21 + src/app/pages/did/import-did-component.html | 24 + .../import-did-component.scss} | 0 src/app/pages/did/import-did-component.ts | 78 + .../pages/extension/extension-component.html | 16 +- .../pages/extension/extension-component.scss | 12 +- .../pages/extension/extension-component.ts | 6 +- .../extension-datasource.component.ts | 5 +- .../extension/extension-form-component.html | 190 +- .../extension/extension-form-component.scss | 3 +- .../extension/extension-form-component.ts | 4 +- src/app/pages/extension/extension.module.ts | 11 +- src/app/pages/extension/extension.service.ts | 39 +- src/app/pages/extension/extension.ts | 3 +- .../faxsettings-component.scss} | 0 .../faxsettings/faxsettings-component.ts | 127 + .../faxsettings.module.ts} | 10 +- .../assign-incoming_cid_number-component.html | 21 + ...assign-incoming_cid_number-component.scss} | 0 .../assign-incoming_cid_number-component.ts | 74 + .../edit-incoming_cid_number-component.html | 16 + .../edit-incoming_cid_number-component.scss | 0 .../edit-incoming_cid_number-component.ts | 53 + .../incoming_cid_number-component.html | 51 + .../incoming_cid_number-component.scss} | 17 +- .../incoming_cid_number-component.ts | 116 + .../incoming_cid_number-database.component.ts | 13 + ...ncoming_cid_number-datasource.component.ts | 61 + .../incoming_cid_number-routing.module.ts | 42 + .../incoming_cid_number.component.ts | 11 + .../incoming_cid_number.module.ts | 42 + .../incoming_cid_number.service.ts | 76 + .../incoming_cid_number.ts | 12 + .../assign-incoming_number-component.html | 21 + .../assign-incoming_number-component.scss | 0 .../assign-incoming_number-component.ts | 74 + .../edit-incoming_number-component.html | 16 + .../edit-incoming_number-component.scss | 0 .../edit-incoming_number-component.ts | 53 + .../forward-incoming_number-component.html | 66 + .../forward-incoming_number-component.scss | 0 .../forward-incoming_number-component.ts | 159 + .../incoming_number-component.html | 56 + .../incoming_number-component.scss} | 13 +- .../incoming_number-component.ts | 117 + .../incoming_number-database.component.ts | 13 + .../incoming_number-datasource.component.ts | 63 + .../incoming_number-routing.module.ts | 46 + .../incoming_number.component.ts | 10 + .../incoming_number/incoming_number.module.ts | 37 + .../incoming_number.service.ts | 67 + .../pages/incoming_number/incoming_number.ts | 11 + src/app/pages/infax/infax-component.html | 217 + src/app/pages/infax/infax-component.scss | 105 + src/app/pages/infax/infax-component.ts | 169 + .../pages/infax/infax-database.component.ts | 13 + .../infax-datasource.component.ts} | 46 +- src/app/pages/infax/infax.module.ts | 42 + src/app/pages/infax/infax.service.ts | 62 + src/app/pages/ivr/amd.ts | 9 - src/app/pages/ivr/answer.ts | 9 - src/app/pages/ivr/callerid_set.ts | 74 - src/app/pages/ivr/dnc.ts | 7 - src/app/pages/ivr/hangup.ts | 8 - src/app/pages/ivr/input.ts | 10 - src/app/pages/ivr/ivr-component.html | 47 - src/app/pages/ivr/ivr-component.scss | 11 - src/app/pages/ivr/ivr-component.ts | 97 - src/app/pages/ivr/ivr-database.component.ts | 13 - src/app/pages/ivr/ivr-datasource.component.ts | 72 - src/app/pages/ivr/ivr-form-component.html | 321 - src/app/pages/ivr/ivr-form-component.scss | 155 - src/app/pages/ivr/ivr-form-component.ts | 544 - src/app/pages/ivr/ivr-routing.module.ts | 42 - src/app/pages/ivr/ivr.module.ts | 37 - src/app/pages/ivr/ivr.service.ts | 57 - src/app/pages/ivr/ivr.ts | 7 - src/app/pages/ivr/ivr_application.ts | 382 - src/app/pages/ivr/ivr_connection.ts | 3 - src/app/pages/ivr/ivr_in_nodes.ts | 23 - src/app/pages/ivr/ivr_nodes.ts | 107 - src/app/pages/ivr/ivr_pointer.ts | 114 - src/app/pages/ivr/play_menu.ts | 51 - src/app/pages/ivr/record.ts | 42 - src/app/pages/ivr/say_alpha.ts | 73 - src/app/pages/ivr/say_date.ts | 70 - src/app/pages/ivr/say_digit.ts | 75 - src/app/pages/ivr/say_number.ts | 74 - src/app/pages/ivr/say_time.ts | 83 - src/app/pages/ivr/start.ts | 9 - src/app/pages/ivr/transfer.ts | 46 - src/app/pages/ivr/tts.ts | 38 - src/app/pages/ivr/voice_play.ts | 43 - src/app/pages/menu-item.ts | 7 + .../message/document/document-component.html | 141 +- .../message/document/document-component.scss | 50 + .../message/document/document-component.ts | 162 +- .../document/document-datasource.component.ts | 6 +- .../document/document-form-component.html | 52 +- .../document/document-form-component.scss | 4 +- .../document/document-form-component.ts | 98 +- .../message/document/document.service.ts | 31 +- src/app/pages/message/document/document.ts | 2 + .../pages/message/email/email-component.html | 54 - .../pages/message/email/email-component.ts | 98 - .../message/email/email-database.component.ts | 13 - .../message/email/email-form-component.html | 115 - .../message/email/email-form-component.ts | 104 - src/app/pages/message/email/email.service.ts | 85 - src/app/pages/message/email/email.ts | 10 - .../pages/message/message-routing.module.ts | 134 +- src/app/pages/message/message.component.ts | 12 +- src/app/pages/message/message.module.ts | 19 +- .../recording/recording-component.html | 18 +- .../recording/recording-component.scss | 2 +- .../message/recording/recording-component.ts | 3 +- .../recording-datasource.component.ts | 4 +- .../recording/recording-form-component.html | 21 +- .../recording/recording-form-component.ts | 2 +- .../pages/message/text/text-component.html | 56 - src/app/pages/message/text/text-component.ts | 90 - .../message/text/text-database.component.ts | 13 - .../message/text/text-datasource.component.ts | 71 - .../message/text/text-form-component.html | 55 - .../pages/message/text/text-form-component.ts | 57 - src/app/pages/message/text/text.service.ts | 69 - src/app/pages/message/text/text.ts | 8 - .../miscellaneous/miscellaneous.module.ts | 2 + .../not-found/not-found.component.html | 6 +- src/app/pages/pages-menu.ts | 296 +- src/app/pages/pages-routing.module.ts | 162 +- src/app/pages/pages.component.scss | 2 +- src/app/pages/pages.component.ts | 97 +- src/app/pages/pages.module.ts | 18 +- .../pages/provider/provider-component.html | 16 +- .../pages/provider/provider-component.scss | 1 - src/app/pages/provider/provider-component.ts | 3 +- .../provider/provider-datasource.component.ts | 3 +- .../provider/provider-form-component.html | 276 +- .../pages/provider/provider-form-component.ts | 3 + src/app/pages/provider/provider.module.ts | 11 +- src/app/pages/provider/provider.ts | 4 +- src/app/pages/sendfax/faxlogs.ts | 24 + src/app/pages/sendfax/sendfax-component.html | 188 + src/app/pages/sendfax/sendfax-component.scss | 74 + src/app/pages/sendfax/sendfax-component.ts | 156 + .../sendfax/sendfax-database.component.ts | 13 + .../sendfax/sendfax-datasource.component.ts | 80 + .../pages/sendfax/sendfax-form-component.html | 217 + .../pages/sendfax/sendfax-form-component.scss | 34 + .../pages/sendfax/sendfax-form-component.ts | 280 + .../pages/sendfax/sendfax-routing.module.ts | 37 + src/app/pages/sendfax/sendfax.component.ts | 10 + src/app/pages/sendfax/sendfax.module.ts | 51 + src/app/pages/sendfax/sendfax.service.ts | 103 + src/app/pages/sendfax/sendfax.ts | 32 + .../transmission-senddocument.html | 4 +- .../sendemail/transmission-sendemail.html | 69 - .../sendemail/transmission-sendemail.ts | 76 - .../sendivr/transmission-sendivr.html | 69 - .../sendivr/transmission-sendivr.ts | 72 - .../sendsms/transmission-sendsms.html | 70 - .../sendsms/transmission-sendsms.ts | 78 - .../sendvoice/transmission-sendvoice.html | 16 +- .../sendvoice/transmission-sendvoice.ts | 2 +- .../transmission/transmission-component.html | 112 +- .../transmission/transmission-component.scss | 34 +- .../transmission/transmission-component.ts | 9 +- .../transmission-datasource.component.ts | 7 +- .../transmission-routing.module.ts | 23 +- .../pages/transmission/transmission.module.ts | 9 +- .../transmission/transmission.service.ts | 25 +- src/app/pages/transmission/transmission.ts | 9 + src/app/pages/user/user-component.html | 33 +- src/app/pages/user/user-component.ts | 10 +- .../pages/user/user-datasource.component.ts | 3 +- src/app/pages/user/user-form-component.html | 62 +- src/app/pages/user/user-form-component.scss | 2 +- src/app/pages/user/user-form-component.ts | 2 +- src/app/pages/user/user.module.ts | 13 +- src/app/pages/user/user.service.ts | 26 + src/assets/config/config.dev.json | 8 + src/assets/config/config.prod.json | 8 + src/assets/i18n/english.json | 431 + src/assets/i18n/italian.json | 412 + src/assets/i18n/japanese.json | 418 + src/assets/images/ictfax-logo-org.png | Bin 0 -> 7220 bytes src/assets/images/logo.png | Bin 0 -> 5780 bytes src/environments/environment.ts | 4 +- src/index.html | 13 +- src/polyfills.ts | 6 +- src/test.ts | 4 +- src/themes.scss | 19 + tsconfig.json | 3 +- 364 files changed, 30315 insertions(+), 24804 deletions(-) delete mode 100755 .devel/ictdialer.spec rename .devel/{ictdialer.conf => ictfax.conf} (77%) create mode 100755 .devel/ictfax.spec create mode 100644 .eslintrc.js delete mode 100644 .stylelintrc.json create mode 100644 CODE_OF_CONDUCT.md create mode 100644 CONTRIBUTING.md create mode 100644 DEV_DOCS.md delete mode 100644 LICENSE create mode 100644 LICENSE.md create mode 100644 doc/ApiGuide.md create mode 100644 doc/ApiTutorial.md create mode 100644 doc/README.md create mode 100644 doc/api.md delete mode 100644 doc/ictdialer_user_guide.pdf create mode 100644 doc/screenshots/add_extension.png create mode 100644 doc/screenshots/add_provider.png create mode 100644 doc/screenshots/add_userictfax.png create mode 100644 doc/screenshots/auth.png create mode 100644 doc/screenshots/service.png create mode 100644 doc/user-guide.md create mode 100644 src/app/@core/data/data.module.ts create mode 100644 src/app/app-config.model.ts create mode 100644 src/app/auth/request-password/request-password.component.html create mode 100644 src/app/auth/request-password/request-password.component.scss create mode 100644 src/app/auth/request-password/request-password.component.ts create mode 100644 src/app/auth/reset-password/reset-password.component.html create mode 100644 src/app/auth/reset-password/reset-password.component.scss create mode 100644 src/app/auth/reset-password/reset-password.component.ts create mode 100644 src/app/auth/signin/auth-config.ts create mode 100644 src/app/auth/signin/signin.component.html rename src/app/{pages/campaigns/sendemail/campaign-email-component.scss => auth/signin/signin.component.scss} (100%) create mode 100644 src/app/auth/signin/signin.component.ts create mode 100644 src/app/auth/signin/signin.service.ts delete mode 100644 src/app/md5.ts rename src/app/pages/campaigns/{sendivr/campaign-ivr-component.scss => campaign-from-component.scss} (100%) delete mode 100644 src/app/pages/campaigns/sendemail/campaign-email-component.html delete mode 100644 src/app/pages/campaigns/sendemail/campaign-email-component.ts delete mode 100644 src/app/pages/campaigns/sendivr/campaign-ivr-component.html delete mode 100644 src/app/pages/campaigns/sendivr/campaign-ivr-component.ts delete mode 100644 src/app/pages/campaigns/sendsms/campaign-form-component.html delete mode 100644 src/app/pages/campaigns/sendsms/campaign-form-component.ts delete mode 100644 src/app/pages/campaigns/sendvoice/campaign-voice-component.html delete mode 100644 src/app/pages/campaigns/sendvoice/campaign-voice-component.ts create mode 100644 src/app/pages/cid/assign-cid-component.html rename src/app/pages/{campaigns/sendsms/campaign-form-component.scss => cid/assign-cid-component.scss} (100%) create mode 100644 src/app/pages/cid/assign-cid-component.ts create mode 100644 src/app/pages/cid/batch-cid-component.html rename src/app/pages/{campaigns/sendvoice/campaign-voice-component.scss => cid/batch-cid-component.scss} (100%) create mode 100644 src/app/pages/cid/batch-cid-component.ts create mode 100644 src/app/pages/cid/cid-component.html create mode 100644 src/app/pages/cid/cid-component.scss create mode 100644 src/app/pages/cid/cid-component.ts create mode 100644 src/app/pages/cid/cid-database.component.ts create mode 100644 src/app/pages/cid/cid-datasource.component.ts create mode 100644 src/app/pages/cid/cid-form-component.html create mode 100644 src/app/pages/cid/cid-form-component.scss create mode 100644 src/app/pages/cid/cid-form-component.ts create mode 100644 src/app/pages/cid/cid-routing.module.ts rename src/app/pages/{ivr/ivr.component.ts => cid/cid.component.ts} (84%) create mode 100644 src/app/pages/cid/cid.module.ts create mode 100644 src/app/pages/cid/cid.service.ts create mode 100644 src/app/pages/cid/cid.ts create mode 100644 src/app/pages/cid/import-cid-component.html rename src/app/pages/{crm-settings/crm-settings-component.scss => cid/import-cid-component.scss} (100%) create mode 100644 src/app/pages/cid/import-cid-component.ts create mode 100644 src/app/pages/contact_dnc/contact_dnc-component.html create mode 100644 src/app/pages/contact_dnc/contact_dnc-component.scss create mode 100644 src/app/pages/contact_dnc/contact_dnc-component.ts create mode 100644 src/app/pages/contact_dnc/contact_dnc-database.component.ts create mode 100644 src/app/pages/contact_dnc/contact_dnc-datasource.component.ts create mode 100644 src/app/pages/contact_dnc/contact_dnc-form-component.html rename src/app/pages/{crmconfig/crmconfig-component.scss => contact_dnc/contact_dnc-form-component.scss} (100%) create mode 100644 src/app/pages/contact_dnc/contact_dnc-form-component.ts create mode 100644 src/app/pages/contact_dnc/contact_dnc-routing.module.ts create mode 100644 src/app/pages/contact_dnc/contact_dnc.component.ts create mode 100644 src/app/pages/contact_dnc/contact_dnc.module.ts create mode 100644 src/app/pages/contact_dnc/contact_dnc.service.ts rename src/app/pages/{message/message.ts => contact_dnc/contact_dnc.ts} (77%) delete mode 100644 src/app/pages/crm-settings/crm-settings-component.ts delete mode 100644 src/app/pages/crmconfig/crmconfig-component.ts delete mode 100644 src/app/pages/crmconfig/crmconfig.service.ts delete mode 100644 src/app/pages/crmconfig/crmconfig.ts create mode 100644 src/app/pages/default_settings/default_settings-component.html create mode 100644 src/app/pages/default_settings/default_settings-component.scss create mode 100644 src/app/pages/default_settings/default_settings-component.ts rename src/app/pages/{crmconfig/crmconfig.module.ts => default_settings/default_settings.module.ts} (50%) create mode 100644 src/app/pages/default_settings/default_settings.service.ts create mode 100644 src/app/pages/default_settings/default_settings.ts create mode 100644 src/app/pages/did/assign-did-component.html rename src/app/pages/{message/email/email-form-component.scss => did/assign-did-component.scss} (100%) create mode 100644 src/app/pages/did/assign-did-component.ts create mode 100644 src/app/pages/did/batch-did-component.html rename src/app/pages/{message/text/text-form-component.scss => did/batch-did-component.scss} (100%) create mode 100644 src/app/pages/did/batch-did-component.ts create mode 100644 src/app/pages/did/did-component.html create mode 100644 src/app/pages/did/did-component.scss create mode 100644 src/app/pages/did/did-component.ts create mode 100644 src/app/pages/did/did-database.component.ts create mode 100644 src/app/pages/did/did-datasource.component.ts create mode 100644 src/app/pages/did/did-form-component.html create mode 100644 src/app/pages/did/did-form-component.scss create mode 100644 src/app/pages/did/did-form-component.ts create mode 100644 src/app/pages/did/did-routing.module.ts create mode 100644 src/app/pages/did/did.component.ts create mode 100644 src/app/pages/did/did.module.ts create mode 100644 src/app/pages/did/did.service.ts create mode 100644 src/app/pages/did/did.ts create mode 100644 src/app/pages/did/import-did-component.html rename src/app/pages/{transmission/sendemail/transmission-sendemail.scss => did/import-did-component.scss} (100%) create mode 100644 src/app/pages/did/import-did-component.ts rename src/app/pages/{transmission/sendivr/transmission-sendivr.scss => faxsettings/faxsettings-component.scss} (100%) create mode 100644 src/app/pages/faxsettings/faxsettings-component.ts rename src/app/pages/{crm-settings/crm-settings.module.ts => faxsettings/faxsettings.module.ts} (69%) create mode 100644 src/app/pages/incoming_cid_number/assign-incoming_cid_number-component.html rename src/app/pages/{transmission/sendsms/transmission-sendsms.scss => incoming_cid_number/assign-incoming_cid_number-component.scss} (100%) create mode 100644 src/app/pages/incoming_cid_number/assign-incoming_cid_number-component.ts create mode 100644 src/app/pages/incoming_cid_number/edit-incoming_cid_number-component.html create mode 100644 src/app/pages/incoming_cid_number/edit-incoming_cid_number-component.scss create mode 100644 src/app/pages/incoming_cid_number/edit-incoming_cid_number-component.ts create mode 100644 src/app/pages/incoming_cid_number/incoming_cid_number-component.html rename src/app/pages/{message/text/text-component.scss => incoming_cid_number/incoming_cid_number-component.scss} (90%) create mode 100644 src/app/pages/incoming_cid_number/incoming_cid_number-component.ts create mode 100644 src/app/pages/incoming_cid_number/incoming_cid_number-database.component.ts create mode 100644 src/app/pages/incoming_cid_number/incoming_cid_number-datasource.component.ts create mode 100644 src/app/pages/incoming_cid_number/incoming_cid_number-routing.module.ts create mode 100644 src/app/pages/incoming_cid_number/incoming_cid_number.component.ts create mode 100644 src/app/pages/incoming_cid_number/incoming_cid_number.module.ts create mode 100644 src/app/pages/incoming_cid_number/incoming_cid_number.service.ts create mode 100644 src/app/pages/incoming_cid_number/incoming_cid_number.ts create mode 100644 src/app/pages/incoming_number/assign-incoming_number-component.html create mode 100644 src/app/pages/incoming_number/assign-incoming_number-component.scss create mode 100644 src/app/pages/incoming_number/assign-incoming_number-component.ts create mode 100644 src/app/pages/incoming_number/edit-incoming_number-component.html create mode 100644 src/app/pages/incoming_number/edit-incoming_number-component.scss create mode 100644 src/app/pages/incoming_number/edit-incoming_number-component.ts create mode 100644 src/app/pages/incoming_number/forward-incoming_number-component.html create mode 100644 src/app/pages/incoming_number/forward-incoming_number-component.scss create mode 100644 src/app/pages/incoming_number/forward-incoming_number-component.ts create mode 100644 src/app/pages/incoming_number/incoming_number-component.html rename src/app/pages/{message/email/email-component.scss => incoming_number/incoming_number-component.scss} (96%) create mode 100644 src/app/pages/incoming_number/incoming_number-component.ts create mode 100644 src/app/pages/incoming_number/incoming_number-database.component.ts create mode 100644 src/app/pages/incoming_number/incoming_number-datasource.component.ts create mode 100644 src/app/pages/incoming_number/incoming_number-routing.module.ts create mode 100644 src/app/pages/incoming_number/incoming_number.component.ts create mode 100644 src/app/pages/incoming_number/incoming_number.module.ts create mode 100644 src/app/pages/incoming_number/incoming_number.service.ts create mode 100644 src/app/pages/incoming_number/incoming_number.ts create mode 100644 src/app/pages/infax/infax-component.html create mode 100644 src/app/pages/infax/infax-component.scss create mode 100644 src/app/pages/infax/infax-component.ts create mode 100644 src/app/pages/infax/infax-database.component.ts rename src/app/pages/{message/email/email-datasource.component.ts => infax/infax-datasource.component.ts} (50%) create mode 100644 src/app/pages/infax/infax.module.ts create mode 100644 src/app/pages/infax/infax.service.ts delete mode 100644 src/app/pages/ivr/amd.ts delete mode 100644 src/app/pages/ivr/answer.ts delete mode 100644 src/app/pages/ivr/callerid_set.ts delete mode 100644 src/app/pages/ivr/dnc.ts delete mode 100644 src/app/pages/ivr/hangup.ts delete mode 100644 src/app/pages/ivr/input.ts delete mode 100644 src/app/pages/ivr/ivr-component.html delete mode 100644 src/app/pages/ivr/ivr-component.scss delete mode 100644 src/app/pages/ivr/ivr-component.ts delete mode 100644 src/app/pages/ivr/ivr-database.component.ts delete mode 100644 src/app/pages/ivr/ivr-datasource.component.ts delete mode 100644 src/app/pages/ivr/ivr-form-component.html delete mode 100644 src/app/pages/ivr/ivr-form-component.scss delete mode 100644 src/app/pages/ivr/ivr-form-component.ts delete mode 100644 src/app/pages/ivr/ivr-routing.module.ts delete mode 100644 src/app/pages/ivr/ivr.module.ts delete mode 100644 src/app/pages/ivr/ivr.service.ts delete mode 100644 src/app/pages/ivr/ivr.ts delete mode 100644 src/app/pages/ivr/ivr_application.ts delete mode 100644 src/app/pages/ivr/ivr_connection.ts delete mode 100644 src/app/pages/ivr/ivr_in_nodes.ts delete mode 100644 src/app/pages/ivr/ivr_nodes.ts delete mode 100644 src/app/pages/ivr/ivr_pointer.ts delete mode 100644 src/app/pages/ivr/play_menu.ts delete mode 100644 src/app/pages/ivr/record.ts delete mode 100644 src/app/pages/ivr/say_alpha.ts delete mode 100644 src/app/pages/ivr/say_date.ts delete mode 100644 src/app/pages/ivr/say_digit.ts delete mode 100644 src/app/pages/ivr/say_number.ts delete mode 100644 src/app/pages/ivr/say_time.ts delete mode 100644 src/app/pages/ivr/start.ts delete mode 100644 src/app/pages/ivr/transfer.ts delete mode 100644 src/app/pages/ivr/tts.ts delete mode 100644 src/app/pages/ivr/voice_play.ts create mode 100644 src/app/pages/menu-item.ts delete mode 100644 src/app/pages/message/email/email-component.html delete mode 100644 src/app/pages/message/email/email-component.ts delete mode 100644 src/app/pages/message/email/email-database.component.ts delete mode 100644 src/app/pages/message/email/email-form-component.html delete mode 100644 src/app/pages/message/email/email-form-component.ts delete mode 100644 src/app/pages/message/email/email.service.ts delete mode 100644 src/app/pages/message/email/email.ts delete mode 100644 src/app/pages/message/text/text-component.html delete mode 100644 src/app/pages/message/text/text-component.ts delete mode 100644 src/app/pages/message/text/text-database.component.ts delete mode 100644 src/app/pages/message/text/text-datasource.component.ts delete mode 100644 src/app/pages/message/text/text-form-component.html delete mode 100644 src/app/pages/message/text/text-form-component.ts delete mode 100644 src/app/pages/message/text/text.service.ts delete mode 100644 src/app/pages/message/text/text.ts create mode 100644 src/app/pages/sendfax/faxlogs.ts create mode 100644 src/app/pages/sendfax/sendfax-component.html create mode 100644 src/app/pages/sendfax/sendfax-component.scss create mode 100644 src/app/pages/sendfax/sendfax-component.ts create mode 100644 src/app/pages/sendfax/sendfax-database.component.ts create mode 100644 src/app/pages/sendfax/sendfax-datasource.component.ts create mode 100644 src/app/pages/sendfax/sendfax-form-component.html create mode 100644 src/app/pages/sendfax/sendfax-form-component.scss create mode 100644 src/app/pages/sendfax/sendfax-form-component.ts create mode 100644 src/app/pages/sendfax/sendfax-routing.module.ts create mode 100644 src/app/pages/sendfax/sendfax.component.ts create mode 100644 src/app/pages/sendfax/sendfax.module.ts create mode 100644 src/app/pages/sendfax/sendfax.service.ts create mode 100644 src/app/pages/sendfax/sendfax.ts delete mode 100644 src/app/pages/transmission/sendemail/transmission-sendemail.html delete mode 100644 src/app/pages/transmission/sendemail/transmission-sendemail.ts delete mode 100644 src/app/pages/transmission/sendivr/transmission-sendivr.html delete mode 100644 src/app/pages/transmission/sendivr/transmission-sendivr.ts delete mode 100644 src/app/pages/transmission/sendsms/transmission-sendsms.html delete mode 100644 src/app/pages/transmission/sendsms/transmission-sendsms.ts create mode 100644 src/assets/config/config.dev.json create mode 100644 src/assets/config/config.prod.json create mode 100644 src/assets/i18n/english.json create mode 100644 src/assets/i18n/italian.json create mode 100644 src/assets/i18n/japanese.json create mode 100644 src/assets/images/ictfax-logo-org.png create mode 100644 src/assets/images/logo.png create mode 100644 src/themes.scss diff --git a/.devel/ictdialer.spec b/.devel/ictdialer.spec deleted file mode 100755 index a9dd9e3e..00000000 --- a/.devel/ictdialer.spec +++ /dev/null @@ -1,81 +0,0 @@ -%define dialer_version __DIALER_VERSION__ -%define dialer_edition __DIALER_EDITION__ -%define dialer_build __DIALER_BUILD__ -%define dialer_home %{_prefix}/ictdialer - -Name: ictdialer -Version: %{dialer_version}.%{dialer_build} -Release: %{dialer_edition}%{?dist} -Summary: Web based management interface for ICTDialer - -Vendor: ICT Innovations -Group: ict -Packager: Nasir Iqbal -License: MPLv2 -URL: https://ictdialer.org/ - -Source0: %{name}-%{version}.tar.gz -Source1: ictdialer.conf - -BuildArch: noarch -BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) -BuildRequires: nodejs git - -Provides: ictdialer - -# GUI dependence on ICTDialer -Requires: ictcore-voice ictcore-fax ictcore-email ictcore-sms -# ICTDialer exposse its interface via apache web server -Requires: httpd - -%description -ICTDialer is web based interface which act as client to ICTCore REST APIs and expose Voice, Fax, SMS and Email related services over web - -%prep -%setup -q -n %{name}-%{version} - -%build -npm install -node --max_old_space_size=8192 ./node_modules/@angular/cli/bin/ng build --prod --base-href "." - -%install -%{__rm} -rf %{buildroot} -%{__install} -d %{buildroot}%{dialer_home} -%{__cp} -pr dist/* %{buildroot}%{dialer_home} -# install ictdialer configuration for apache -%{__mkdir} -p %{buildroot}/etc/httpd/conf.d/ -%{__cp} %SOURCE1 %{buildroot}/etc/httpd/conf.d/ictdialer.conf - -%clean -%{__rm} -rf %{buildroot} - -%files -# basic configuration files -%defattr(644,root,root,755) -%config /etc/httpd/conf.d/ictdialer.conf - -# include all ictdialer files and folder -%defattr(644,apache,apache,755) -%{dialer_home} - -%post -# alter firewall for sip -%if %{rhel} < 7 -# apache web port -/sbin/iptables -I INPUT -p tcp -m state --state NEW -m tcp --dport 80 -j ACCEPT # tcp -/etc/init.d/iptables save -%else -# apache web port -/bin/firewall-cmd --zone=public --add-port=80/tcp --permanent # tcp -/bin/firewall-cmd --reload -%endif - -%changelog -* Tue Jan 16 2018 Nasir Iqbal - 3.0.0 -- ICTDialer 3.0.0 release with Angular instead of Drupal - -* Thu Nov 20 2018 Nasir Iqbal - 0.2.0 -- ICTDialer GUI 0.2.0 release - -* Thu Dec 28 2017 Nasir Iqbal - 0.1.0 -- ICTCore GUI 0.1.0 release (first release) diff --git a/.devel/ictdialer.conf b/.devel/ictfax.conf similarity index 77% rename from .devel/ictdialer.conf rename to .devel/ictfax.conf index 708b59c5..ce42b507 100755 --- a/.devel/ictdialer.conf +++ b/.devel/ictfax.conf @@ -1,5 +1,5 @@ -Alias /ictdialer /usr/ictdialer/ - +Alias /ictfax /usr/ictfax + Options Indexes FollowSymLinks Includes AllowOverride All diff --git a/.devel/ictfax.spec b/.devel/ictfax.spec new file mode 100755 index 00000000..6b27ca40 --- /dev/null +++ b/.devel/ictfax.spec @@ -0,0 +1,82 @@ +%define ictfax_version __ICTFAX_VERSION__ +%define ictfax_edition __ICTFAX_EDITION__ +%define ictfax_build __ICTFAX_BUILD__ +%define ictfax_home %{_prefix}/ictfax + +Name: ictfax +Version: %{ictfax_version}.%{ictfax_build} +Release: %{ictfax_edition}%{?dist} +Summary: Web based management interface for ICTFax + +Vendor: ICT Innovations +Group: ict +Packager: Nasir Iqbal +License: MPLv2 +URL: https://ictfax.org/ + +Source0: %{name}-%{version}.tar.gz +Source1: ictfax.conf + +BuildArch: noarch +BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) +BuildRequires: git + +Provides: ictfax + +# GUI dependence on ICTCore +Requires: ictcore-fax ictcore-email +# ICTCore GUI exposse its interface via apache web server +Requires: httpd + +%description +ICTCore GUI is web based interface which act as client to ICTCore REST APIs and expose Voice, Fax, SMS and Email related services over web + +%prep +%setup -q -n %{name}-%{version} + +%build +# Install Node.js locally +mkdir -p $HOME/local +curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.1/install.sh | bash +export NVM_DIR="$HOME/.nvm" +[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" +nvm install 14 +export PATH="$HOME/.nvm/versions/node/v12.22.12/bin:$PATH" +npm install +node --max_old_space_size=8192 ./node_modules/@angular/cli/bin/ng build --base-href /ictfax --prod + +%install +%{__rm} -rf %{buildroot} +%{__install} -d %{buildroot}%{ictfax_home} +%{__cp} -pr dist/* %{buildroot}%{ictfax_home} +# install ictfax configuration for apache +%{__mkdir} -p %{buildroot}/etc/httpd/conf.d/ +%{__cp} %SOURCE1 %{buildroot}/etc/httpd/conf.d/ictfax.conf + +%clean +%{__rm} -rf %{buildroot} + +%files +# basic configuration files +%defattr(644,root,root,755) +%config /etc/httpd/conf.d/ictfax.conf + +# include all ictfax files and folder +%defattr(644,apache,apache,755) +%{ictfax_home} + +%post +# alter firewall for sip +%if %{rhel} < 7 +# apache web port +/sbin/iptables -I INPUT -p tcp -m state --state NEW -m tcp --dport 80 -j ACCEPT # tcp +/etc/init.d/iptables save +%else +# apache web port +/bin/firewall-cmd --zone=public --add-port=80/tcp --permanent # tcp +/bin/firewall-cmd --reload +%endif + +%changelog +* Fri Jan 11 2019 Nasir Iqbal - 4.0.0 +- ICTFax 4.0.0 release diff --git a/.eslintrc.js b/.eslintrc.js new file mode 100644 index 00000000..8c6dcc8f --- /dev/null +++ b/.eslintrc.js @@ -0,0 +1,18 @@ +module.exports = { + "env": { + "browser": true, + "es2021": true + }, + "overrides": [ + ], + "parser": "@typescript-eslint/parser", + "parserOptions": { + "ecmaVersion": "latest", + "sourceType": "module" + }, + "plugins": [ + "@typescript-eslint" + ], + "rules": { + } +} diff --git a/.gitignore b/.gitignore index 0198d5af..d9c4abc2 100644 --- a/.gitignore +++ b/.gitignore @@ -7,6 +7,7 @@ /node_modules # IDEs and editors +.angular /.idea .project .classpath diff --git a/.stylelintrc.json b/.stylelintrc.json deleted file mode 100644 index 9732970f..00000000 --- a/.stylelintrc.json +++ /dev/null @@ -1,72 +0,0 @@ -{ - "rules": { - "color-hex-case": "lower", - "color-no-invalid-hex": true, - - "function-calc-no-unspaced-operator": true, - "function-comma-space-after": "always-single-line", - "function-comma-space-before": "never", - "function-name-case": "lower", - "function-url-quotes": "always", - "function-whitespace-after": "always", - - "number-leading-zero": "always", - "number-no-trailing-zeros": true, - "length-zero-no-unit": true, - - "string-no-newline": true, - "string-quotes": "single", - - "unit-case": "lower", - "unit-no-unknown": true, - "unit-whitelist": ["px", "%", "deg", "ms", "em", "vh", "vw", "s", "rem"], - - "value-list-comma-space-after": "always-single-line", - "value-list-comma-space-before": "never", - - "shorthand-property-no-redundant-values": true, - - "property-case": "lower", - - "declaration-block-no-duplicate-properties": [ true, { - "ignore": ["consecutive-duplicates-with-different-values"] - }], - "declaration-block-trailing-semicolon": "always", - "declaration-block-single-line-max-declarations": 1, - "declaration-block-semicolon-space-before": "never", - "declaration-block-semicolon-space-after": "always-single-line", - "declaration-block-semicolon-newline-before": "never-multi-line", - "declaration-block-semicolon-newline-after": "always-multi-line", - "declaration-property-value-blacklist": [ - { "/.*/": ["initial"] }, - { "message": "The `initial` value is not supported in IE."} - ], - - "block-closing-brace-newline-after": [ - "always", - { - "ignoreAtRules": ["if", "else"] - } - ], - "block-closing-brace-newline-before": "always-multi-line", - "block-opening-brace-newline-after": "always-multi-line", - "block-opening-brace-space-before": "always-multi-line", - - "selector-attribute-brackets-space-inside": "never", - "selector-attribute-operator-space-after": "never", - "selector-attribute-operator-space-before": "never", - "selector-combinator-space-after": "always", - "selector-combinator-space-before": "always", - "selector-pseudo-class-case": "lower", - "selector-pseudo-class-parentheses-space-inside": "never", - "selector-pseudo-element-case": "lower", - "selector-pseudo-element-colon-notation": "double", - "selector-pseudo-element-no-unknown": true, - "selector-type-case": "lower", - "selector-max-id": 0, - - "no-missing-end-of-source-newline": true, - - "max-line-length": 120 - } -} diff --git a/.vscode/settings.json b/.vscode/settings.json index 4a90bead..d4d153b0 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -1,4 +1,5 @@ { "typescript.tsdk": "./node_modules/typescript/lib", - "tslint.enable": false + "tslint.enable": false, + "angular.enable-strict-mode-prompt": false } diff --git a/CHANGELOG.md b/CHANGELOG.md index 85d2fb66..9ec4fea2 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,18 +1,81 @@ -#### ICTDialer 4.0 +#### 2021-08-27 Version 4.5.0 -* Updated to Angular 8 -* Bug Fixing -* CRM Integration -* Advanced Dashboard monitoring +* Show system statistics +* Bugs removed +* Create DIDs in batch, Assign service to DID +* DID forwarding supported added for Fax ATA support +* Major Office document types supported +* User - Friendly GUI +#### 2019-02-04 Version 4.0 -#### ICTDialer 3.0 +* Angular based Application +* Send multiple files +* Extension and DID Support +* Fully Supports centos7 +* Assign the service on incoming number like Forward to Extension, Fax to email etc. +* APIs Support +* Dropping backward compatibility of Drupal 7 +* Fax Extension ATA Support +* Use ICTCore as a communication framework -* Angular 4 based application -* Campaign and Transmission management -* Theming Support -* Contacts management -* User management -* Provider management -* ICTCore integration +#### 2014-02-12 Version 2.2.0 +* Bugfix regarding new gevent issue in centos 6.5 +* Show email address in DID Screen +* FAX user delation allowed +* Documentation converted into Markdown syntax +* Fax preview support added +* No notification on failed incoming faxes +* Tmporary file issue fixed +* Code converted into unix format +* space in attachement file issue has been fixed + +#### 2013-06-03 Version 2.1.1 + +* Updated ambiguous create fax descriptions +* ictfax new theme and GUI +* Bug fix for permission issue in Fax Account + +#### 2012-12-26 Version 2.1 + +* Bug fixing for registered user's activation +* Application path setting at GUI +* Bug fixing for Viewing an inbox fax +* Bug fix for receiving an incoming fax +* Billing has been discontinued in open source version +* DID assign form simplified + +#### 2012-06-14 Version 2.0 beta + +* Complete rewrite of ICTFAX 0.3.2 +* Backend now supported with Freeswitch instead of Asterisk +* Based on powerful Plivo communication framework +* Written in modular approach with Drupal 7.0 CMS +* Upgraded to PHP 5.3 +* Billing is not bundled. Billing is in development + +#### 2011-07-22 Version 0.3.2 + +* Documentation Improved +* Auto page rotate support added +* Domain based authentication support added +* Dialplan improved +* Upgraded to PHP 5 +* Invalid path issue fixed +* Status based billing issue fixed +* Error on retry issue fixed +* And many other bug fixes + +#### 2010-04-28 Version 0.2 beta + +* Added instruction to ease the installation +* Added FAX 2 Email support +* Replaced backend engine from Callweaver to Asterisk 1.6.2 +* Moved Installation directory from /home/astbill to /usr/ictfax +* Deleted All unnecessary code and files + +#### 2009-08-26 Version 0.1 beta + +* First Public Version of ICTFAX +* ICT FAX Module added on AstBill \ No newline at end of file diff --git a/CODE_OF_CONDUCT.md b/CODE_OF_CONDUCT.md new file mode 100644 index 00000000..69857c17 --- /dev/null +++ b/CODE_OF_CONDUCT.md @@ -0,0 +1,27 @@ +# Contributor Code of Conduct + +As contributors and maintainers of the ngx-admin project, and in the interest of fostering an open and welcoming community, +we pledge to respect all people who contribute through reporting issues, posting feature requests, updating documentation, submitting pull requests or patches, and other activities. + +We are committed to making participation in this project a harassment-free experience for everyone, regardless of level of experience, gender, +gender identity and expression, sexual orientation, disability, personal appearance, body size, race, ethnicity, age, religion, nationality or anything else. + +Examples of unacceptable behavior by participants include: + +* The use of sexualized language or imagery +* Personal attacks +* Trolling or insulting/derogatory comments +* Public or private harassment +* Publishing other's private information, such as physical or electronic addresses, without explicit permission +* Other unethical or unprofessional conduct. + +Project maintainers have the right and responsibility to remove, edit, or reject comments, commits, code, wiki edits, issues, +and other contributions that are not aligned to this Code of Conduct. +By adopting this Code of Conduct, project maintainers commit themselves to fairly and consistently applying these principles to every aspect of managing this project. +Project maintainers who do not follow or enforce the Code of Conduct may be permanently removed from the project team. + +This code of conduct applies both within project spaces and in public spaces when an individual is representing the project or its community. + +Instances of abusive, harassing, or otherwise unacceptable behavior may be reported by opening an issue or contacting one or more of the project maintainers. + +This Code of Conduct is adapted from the [Contributor Covenant](http://contributor-covenant.org), version 1.2.0, available at [http://contributor-covenant.org/version/1/2/0/](http://contributor-covenant.org/version/1/2/0/) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md new file mode 100644 index 00000000..8fb9b3c9 --- /dev/null +++ b/CONTRIBUTING.md @@ -0,0 +1,221 @@ +# Contributing to ngx-admin + +We would love for you to contribute to ngx-admin and help make it ever better together! :rocket: + + - [Code of Conduct](#coc) + - [Question or Problem?](#question) + - [Issues and Bugs](#issue) + - [Feature Requests](#feature) + - [Submission Guidelines](#submit-pr) + - [Coding Rules](#rules) + - [Commit Message Guidelines](#commit) + +## Code of Conduct +Help us keep ngx-admin open and inclusive. Please read and follow our [Code of Conduct][coc]. + +## Got a Question or Problem? + +Please do not open issues for general support questions as we want to keep GitHub issues for bug reports and feature requests. You've got much better chances of getting your question answered on [StackOverflow][stackoverflow] where the questions should be tagged with tag `ngx-admin`. + +StackOverflow is a much better place to ask questions since: + +- there are thousands of people willing to help on StackOverflow +- questions and answers stay available for public viewing so your question / answer might help someone else +- StackOverflow's voting system assures that the best answers are prominently visible. + +To save your and our time, we will be systematically closing all the issues that are requests for general support and redirecting people to StackOverflow. + + +## Found an Issue? +If you find a bug in the source code or a mistake in the documentation, you can help us by +[submitting an issue](#submit-issue) to our [GitHub Repository][github]. Including an issue +reproduction (via CodePen, JsBin, Plunkr, GitHub repo, etc.) is the absolute best way to help the team quickly +diagnose the problem. Screenshots and error stack traces are also helpful. + +Please follow this simple checklist before submitting: + +* If you have a question about using ngx-admin, please ask on the [StackOverflow][stackoverflow]. + +* It is required that you clearly describe the steps necessary to reproduce the issue you are running into. Although we would love to help our users as much as possible, diagnosing issues without clear reproduction steps is extremely time-consuming and simply not sustainable. + +* The issue list of this repository is exclusively for bug reports and feature requests. Non-conforming issues will be closed immediately. + +* Issues with no clear steps to reproduce will not be triaged. If an issue is labeled with "needs info" and receives no further replies from the author of the issue for more than 5 days, it will be closed. + +* If you think you have found a bug, or have a new feature idea, please start by making sure it hasn't already been [reported][issues]. You can search through existing issues to see if there is a similar one reported. Include closed issues as it may have been closed with a solution. + +* Next, [create a new issue](#submit-issue) that thoroughly explains the problem. Please fill out the populated issue form before submitting the issue. + +## Want a Feature? +You can *request* a new feature by [submitting an issue](#submit-issue) to our [GitHub +Repository][github]. If you would like to *implement* a new feature, please submit an issue with +a proposal for your work first, to be sure that we can use it. +Please consider what kind of change it is: + +* For a **Major Feature**, first open an issue and outline your proposal so that it can be +discussed. This will also allow us to better coordinate our efforts, prevent duplication of work, +and help you to craft the change so that it is successfully accepted into the project. +* **Small Features** can be crafted and directly [submitted as a Pull Request](#submit-pr). + +### Submitting an Issue +Before you submit an issue, search the archive, maybe your question was already answered. + +If your issue appears to be a bug, and hasn't been reported, open a new issue. +Help us to maximize the effort we can spend fixing issues and adding new +features by not reporting duplicate issues. Please make sure to fill out the populated issue form before submitting the issue. + +You can file new issues by providing the information [here][new_issue]. + + +### Submitting a Pull Request (PR) +Before you submit your Pull Request (PR) consider the following guidelines: + +* Search [GitHub][pulls] for an open or closed PR + that relates to your submission. You don't want to duplicate effort. +* Make your changes in a new git branch: + + ```shell + git checkout -b my-fix-branch master + ``` +* Read the [developer documentation][dev-doc]. +* Create your patch, **including appropriate test cases**. +* Follow our [Coding Rules](#rules). +* Test your changes with our supported browsers and screen readers. +* Commit your changes using a descriptive commit message that follows our + [commit message conventions](#commit). Adherence to these conventions + is necessary because release notes are automatically generated from these messages. + + ```shell + git commit -a + ``` + Note: the optional commit `-a` command line option will automatically "add" and "rm" edited files. + +* Push your branch to GitHub: + + ```shell + git push my-fork my-fix-branch + ``` + +* In GitHub, send a pull request to `ngx-admin:master`. +* If we suggest changes then: + * Make the required updates. + * Re-run `npm run release:validate` to ensure tests are still passing, linter & build has no errors. + * Rebase your branch and force push to your GitHub repository (this will update your Pull + Request): + + ```shell + git rebase master -i + git push -f + ``` + +That's it! Thank you for your contribution! + +#### After your pull request is merged + +After your pull request is merged, you can safely delete your branch and pull the changes +from the main (upstream) repository: + +* Delete the remote branch on GitHub either through the GitHub web UI or your local shell as + follows: + + ```shell + git push my-fork --delete my-fix-branch + ``` + +* Check out the master branch: + + ```shell + git checkout master -f + ``` + +* Delete the local branch: + + ```shell + git branch -D my-fix-branch + ``` + +* Update your master with the latest upstream version: + + ```shell + git pull --ff upstream master + ``` + +## Coding Rules +To ensure consistency throughout the source code, keep these rules in mind as you are working: + +* All features or bug fixes **must be tested** by one or more specs (unit-tests). +* All public API methods **must be documented** following JsDoc notation. + +## Commit Message Guidelines + +We have very precise rules over how our git commit messages can be formatted. This leads to **more +readable messages** that are easy to follow when looking through the **project history**. But also, +we use the git commit messages to **generate the ngx-admin change log**. + +### Commit Message Format +Each commit message consists of a **header**, a **body** and a **footer**. The header has a special +format that includes a **type**, a **scope** and a **subject**: + +``` +(): + + + +