Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat(telecom-dashboard): add ftth eligibilities list #11855

Merged
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions packages/manager/apps/telecom/src/app/app.module.js
Original file line number Diff line number Diff line change
Expand Up @@ -107,6 +107,7 @@ import ovhManagerAtInternetConfiguration from '@ovh-ux/manager-at-internet-confi
import uiRouter, { RejectType } from '@uirouter/angularjs';
import TelecomAppCtrl from './app.controller';
import pack from './telecom/pack';
import accessList from './telecom/pack/access-list';
import telephony from './telecom/telephony';
import telephonyComponents from '../components/telecom/telephony';
import popoverUtils from '../components/popover';
Expand Down Expand Up @@ -231,6 +232,7 @@ export default async (containerEl, shellClient) => {
telephonyComponents,
searchPage,
ngOvhFeatureFlipping,
accessList,
...get(__NG_APP_INJECTIONS__, environment.getRegion(), []),
].filter(isString),
)
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
import angular from 'angular';

import ngTranslateAsyncLoader from '@ovh-ux/ng-translate-async-loader';
import uiRouter from '@uirouter/angularjs';
import angularTranslate from 'angular-translate';

import component from './xdsl-access-list.component';
import routing from './xdsl-access-list.routing';
import service from './xdsl-access-list.service';

const moduleName = 'ovhManagerTelecomXdslAccessList';

angular
.module(moduleName, [ngTranslateAsyncLoader, uiRouter, angularTranslate])
.component('xdslAccessList', component)
.service('XdslAccessListService', service)
.config(routing)
.run(/* @ngTranslationsInject:json ./translations */);

export default moduleName;
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
{
"xdsl_access_list_title": "Meine Dienstleistungen",
"xlds_access_list_copper_closure_info": "Mehr Informationen zum Schließen von Kupfer.",
"xdsl_access_list_service_name": "Name des Dienstes",
"xdsl_access_list_service": "Dienst",
"xdsl_access_list_migration": "Glasfasermigration",
"xdsl_access_list_copper_closure_date": "Datum der Kupferabschaltung",
"xdsl_access_list_actions": "Aktionen",
"xdsl_access_list_copper": "xDSL Leitung",
"xdsl_access_list_fiber": "FTTH-Leitung",
"xdsl_access_list_not_eligible": "Nicht wählbar",
"xdsl_access_list_no_building": "Kein Gebäude",
"xdsl_access_list_eligible": "wählbar",
"xdsl_access_list_not_concerned": "Betrifft mich nicht",
"xdsl_access_list_not_available": "Nicht verfügbar",
"xdsl_access_list_migrate": "Zur Glasfaser migrieren"
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
{
"xdsl_access_list_title": "My services",
"xlds_access_list_copper_closure_info": "Find out more about copper closure.",
"xdsl_access_list_service_name": "Service name",
"xdsl_access_list_service": "Service",
"xdsl_access_list_migration": "Fiber migration",
"xdsl_access_list_copper_closure_date": "Copper closure date",
"xdsl_access_list_actions": "Actions",
"xdsl_access_list_copper": "xDSL line",
"xdsl_access_list_fiber": "FTTH line",
"xdsl_access_list_not_eligible": "Not eligible",
"xdsl_access_list_no_building": "No building",
"xdsl_access_list_eligible": "Eligible",
"xdsl_access_list_not_concerned": "Not applicable",
"xdsl_access_list_not_available": "Not available ",
"xdsl_access_list_migrate": "Migrate to fiber"
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
{
"xdsl_access_list_title": "Mis servicios",
"xlds_access_list_copper_closure_info": "Más información sobre el cierre del cobre.",
"xdsl_access_list_service_name": "Nombre del servicio",
"xdsl_access_list_service": "Servicio",
"xdsl_access_list_migration": "Migración de fibra",
"xdsl_access_list_copper_closure_date": "Fecha de cierre del cobre",
"xdsl_access_list_actions": "Acciones",
"xdsl_access_list_copper": "Línea xDSL",
"xdsl_access_list_fiber": "Línea FTTH",
"xdsl_access_list_not_eligible": "No apto",
"xdsl_access_list_no_building": "Sin edificio",
"xdsl_access_list_eligible": "Apto",
"xdsl_access_list_not_concerned": "NS/NC",
"xdsl_access_list_not_available": "No disponible",
"xdsl_access_list_migrate": "Migrar a fibra"
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
{
"xdsl_access_list_title": "Mes services",
"xlds_access_list_copper_closure_info": "En savoir plus sur la fermeture du cuivre.",
"xdsl_access_list_service_name": "Nom du service",
"xdsl_access_list_service": "Service",
"xdsl_access_list_migration": "Migration fibre",
"xdsl_access_list_copper_closure_date": "Date de fermeture du cuivre",
"xdsl_access_list_actions": "Actions",
"xdsl_access_list_copper": "Ligne xDSL",
"xdsl_access_list_fiber": "Ligne FTTH",
"xdsl_access_list_not_eligible": "Non éligible",
"xdsl_access_list_no_building": "Pas de bâtiment",
"xdsl_access_list_eligible": "Eligible",
"xdsl_access_list_not_concerned": "Non concerné",
"xdsl_access_list_not_available": "Non disponible",
"xdsl_access_list_migrate": "Migrer vers la fibre"
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
{
"xdsl_access_list_title": "Mes services",
"xlds_access_list_copper_closure_info": "En savoir plus sur la fermeture du cuivre.",
"xdsl_access_list_service_name": "Nom du service",
"xdsl_access_list_service": "Service",
"xdsl_access_list_migration": "Migration fibre",
"xdsl_access_list_copper_closure_date": "Date de fermeture du cuivre",
"xdsl_access_list_actions": "Actions",
"xdsl_access_list_copper": "Ligne xDSL",
"xdsl_access_list_fiber": "Ligne FTTH",
"xdsl_access_list_not_eligible": "Non éligible",
"xdsl_access_list_no_building": "Pas de bâtiment",
"xdsl_access_list_eligible": "Eligible",
"xdsl_access_list_not_concerned": "Non concerné",
"xdsl_access_list_not_available": "Non disponible",
"xdsl_access_list_migrate": "Migrer vers la fibre"
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
{
"xdsl_access_list_title": "I tuoi servizi",
"xlds_access_list_copper_closure_info": "Per saperne di più sulla chiusura del rame.",
"xdsl_access_list_service_name": "Nome del servizio",
"xdsl_access_list_service": "Servizio",
"xdsl_access_list_migration": "Migrazione in fibra",
"xdsl_access_list_copper_closure_date": "Data di chiusura del rame",
"xdsl_access_list_actions": "Azioni",
"xdsl_access_list_copper": "Linea xDSL",
"xdsl_access_list_fiber": "Linea FTTH",
"xdsl_access_list_not_eligible": "Non ammissibile",
"xdsl_access_list_no_building": "Nessun edificio",
"xdsl_access_list_eligible": "Ammissibile",
"xdsl_access_list_not_concerned": "Non applicabile",
"xdsl_access_list_not_available": "Non disponibile",
"xdsl_access_list_migrate": "Passa alla fibra"
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
{
"xdsl_access_list_title": "Moje usługi",
"xlds_access_list_copper_closure_info": "Dowiedz się więcej o zamykaniu miedzi.",
"xdsl_access_list_service_name": "Nazwa usługi",
"xdsl_access_list_service": "Usługa",
"xdsl_access_list_migration": "Migracja światłowodów",
"xdsl_access_list_copper_closure_date": "Data zamknięcia miedzi",
"xdsl_access_list_actions": "Operacje",
"xdsl_access_list_copper": "Linia xDSL",
"xdsl_access_list_fiber": "Linia FTTH",
"xdsl_access_list_not_eligible": "Niekwalifikujący się",
"xdsl_access_list_no_building": "Brak budynku",
"xdsl_access_list_eligible": "Kwalifikujące się",
"xdsl_access_list_not_concerned": "Nie dotyczy",
"xdsl_access_list_not_available": "Niedostępne",
"xdsl_access_list_migrate": "Przejdź na światłowód"
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
{
"xdsl_access_list_title": "Os meus serviços",
"xlds_access_list_copper_closure_info": "Saiba mais sobre o fechamento de cobre.",
"xdsl_access_list_service_name": "Nome do serviço",
"xdsl_access_list_service": "Serviço",
"xdsl_access_list_migration": "Migração de fibra",
"xdsl_access_list_copper_closure_date": "Data de encerramento do cobre",
"xdsl_access_list_actions": "Ações",
"xdsl_access_list_copper": "Linha xDSL",
"xdsl_access_list_fiber": "Linha FTTH",
"xdsl_access_list_not_eligible": "Não elegível",
"xdsl_access_list_no_building": "Sem edifício",
"xdsl_access_list_eligible": "Elegível",
"xdsl_access_list_not_concerned": "Não aplicável",
"xdsl_access_list_not_available": "Não disponível",
"xdsl_access_list_migrate": "Migrar para a fibra"
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
import controller from './xdsl-access-list.controller';
import template from './xdsl-access-list.html';

export default {
controller,
template,
};
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
export const ELIGIBILITY = {
not_eligible: 'not_eligible',
eligible: 'eligible',
not_concerned: 'not_concerned',
};

export const PAGE_SIZE = 10;

export const ACCESS_TYPE = {
adsl: 'adsl',
sdsl: 'sdsl',
vdsl: 'vdsl',
ftth: 'ftth',
};

export const URL_CLOSURE_INFO =
'https://www.ovhcloud.com/fr/lp/fermeture-reseau-cuivre/';

export default { ELIGIBILITY, PAGE_SIZE, ACCESS_TYPE, URL_CLOSURE_INFO };
Original file line number Diff line number Diff line change
@@ -0,0 +1,82 @@
import {
ELIGIBILITY,
PAGE_SIZE,
ACCESS_TYPE,
URL_CLOSURE_INFO,
} from './xdsl-access-list.constant';

export default class XdslAccessListCtrl {
/* @ngInject */
constructor($q, coreURLBuilder, XdslAccessListService, TucToastError) {
this.$q = $q;
this.coreURLBuilder = coreURLBuilder;
this.XdslAccessListService = XdslAccessListService;
this.TucToastError = TucToastError;
}

$onInit() {
this.ELIGIBILITY = ELIGIBILITY;
this.pageSize = PAGE_SIZE;
this.ACCESS_TYPE = ACCESS_TYPE;

this.links = {
copperClosureMore: URL_CLOSURE_INFO,
};

this.getServices();
}

getServices() {
this.XdslAccessListService.getServices()
.then((data) =>
this.buildServicesList(data || []).then((services) => {
this.services = services;
}),
)
.catch(({ data }) => {
this.TucToastError(data.message);
});
}

buildServicesList(services) {
// Retrieve service info for each service
const serviceList = services.map((service) => {
if (service.accessType !== this.ACCESS_TYPE.ftth) {
return this.XdslAccessListService.getFiberEligibilityList(
service.accessName,
).then((data) =>
this.createService(
service,
data[0].status,
data[0].copperGridClosureTrajectory,
),
);
}
return this.createService(service, this.ELIGIBILITY.not_concerned);
});
return this.$q.all(serviceList);
}

createService(service, migrationAvailable, copperGridClosureTrajectory) {
const { accessName, accessType, description, packName } = service;
const newService = {
accessName,
accessType,
description,
packName,
migrationAvailable: migrationAvailable || this.ELIGIBILITY.not_eligible,
accessLink: this.coreURLBuilder.buildURL(
'telecom',
`#/pack/${packName}/xdsl/${accessName}`,
),
migrationLink: this.coreURLBuilder.buildURL(
'telecom',
`#/pack/${packName}/migration`,
),
};
if (copperGridClosureTrajectory) {
newService.copperGridClosureTrajectory = copperGridClosureTrajectory;
}
return newService;
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,96 @@
<div class="m-4">
<header class="widget-presentation-header">
<h2
class="widget-presentation-title"
data-translate="xdsl_access_list_title"
></h2>
</header>

<tuc-toast-message></tuc-toast-message>

<oui-message data-type="info">
<a
data-ng-href="{{ $ctrl.links.copperClosureMore }}"
data-translate-attr="{ 'title': 'xlds_access_list_copper_closure_info' }"
target="_blank"
rel="noopener"
>
<span data-translate="xlds_access_list_copper_closure_info"></span>
<span
class="oui-icon oui-icon-external-link"
aria-hidden="true"
></span>
</a>
</oui-message>

<oui-datagrid
data-rows="$ctrl.services"
data-page-size="{{$ctrl.pageSize}}"
>
<oui-datagrid-column
data-title="'xdsl_access_list_service_name' | translate"
data-property="accessName"
data-sortable="desc"
>
<div>
<a data-ng-href="{{ $row.accessLink }}">
<span data-ng-bind="$row.accessName"></span>
</a>
</div>
<div data-ng-bind="$row.description"></div>
</oui-datagrid-column>
<oui-datagrid-column
data-title="'xdsl_access_list_service' | translate"
data-property="accessType"
data-sortable
>
<span
data-translate="{{$row.accessType === $ctrl.ACCESS_TYPE.ftth ? 'xdsl_access_list_fiber' : 'xdsl_access_list_copper'}}"
></span>
</oui-datagrid-column>
<oui-datagrid-column
data-title="'xdsl_access_list_migration' | translate"
data-property="migrationAvailable"
data-sortable
>
<span
class="oui-badge oui-badge_success"
data-translate="{{'xdsl_access_list_' + $row.migrationAvailable}}"
data-ng-if="$row.migrationAvailable === $ctrl.ELIGIBILITY.eligible"
></span>
<span
data-translate="{{'xdsl_access_list_' + $row.migrationAvailable}}"
data-ng-if="$row.migrationAvailable != $ctrl.ELIGIBILITY.eligible"
></span>
</oui-datagrid-column>
<oui-datagrid-column
data-title="'xdsl_access_list_copper_closure_date' | translate"
>
<span
data-ng-if="$row.migrationAvailable === $ctrl.ELIGIBILITY.eligible && $row.copperGridClosureTrajectory.technicalClosureDate"
data-ng-bind="$row.copperGridClosureTrajectory.technicalClosureDate | date:'shortDate'"
>
</span>
<span
data-ng-if="$row.migrationAvailable === $ctrl.ELIGIBILITY.eligible && !$row.copperGridClosureTrajectory.technicalClosureDate"
data-translate="xdsl_access_list_not_available"
></span>
<span
data-ng-if="$row.migrationAvailable != $ctrl.ELIGIBILITY.eligible"
data-translate="xdsl_access_list_not_concerned"
></span>
</oui-datagrid-column>
<oui-datagrid-column
data-title="'xdsl_access_list_actions' | translate"
>
<a
class="oui-button oui-button_secondary"
data-ng-href="{{$row.migrationLink}}"
data-ng-if="$row.migrationAvailable === $ctrl.ELIGIBILITY.eligible && $row.accessType !== $ctrl.ACCESS_TYPE.sdsl"
data-translate-attr="{'title': 'xdsl_access_list_migrate'}"
>
<span data-translate="xdsl_access_list_migrate"></span>
</a>
</oui-datagrid-column>
</oui-datagrid>
</div>
Loading
Loading