static function getTypes() { return [['id' => Service::TYPE_NSI_CSP_2_0, 'name' => Service::getTypeLabels()[Service::TYPE_NSI_CSP_2_0]]]; }
public function getDetails() { $data = json_decode($this->data); switch ($this->type) { case self::TYPE_DELETE: switch ($this->item_type) { case self::ITEM_TYPE_DOMAIN: return Yii::t('topology', 'Domain'); case self::ITEM_TYPE_PROVIDER: return Yii::t('topology', '<b>Provider</b>: {name}, <b>Type</b>: {type}', ['name' => $data->name, 'type' => $data->type]); case self::ITEM_TYPE_PEERING: return ""; case self::ITEM_TYPE_SERVICE: return Yii::t('topology', 'Domain'); case self::ITEM_TYPE_NETWORK: return Yii::t('topology', 'Network'); case self::ITEM_TYPE_DEVICE: return $data->node; case self::ITEM_TYPE_BIPORT: $port = Port::findOne($this->item_id); return $port ? $port->name : ''; case self::ITEM_TYPE_UNIPORT: return Yii::t('topology', 'Port'); case self::ITEM_TYPE_LINK: return ''; default: return Yii::t('topology', 'Error'); } case self::TYPE_UPDATE: switch ($this->item_type) { case self::ITEM_TYPE_DOMAIN: return Yii::t('topology', 'Domain'); case self::ITEM_TYPE_PROVIDER: $prov = Provider::findOne($this->item_id); return Yii::t('topology', 'To: <b>Provider</b>: {name}, <b>Type</b>: {type}, <b>Latitude</b>: {lat}' . ', <b>Longitude</b>: {lng}', ['name' => $data->name, 'type' => $data->type, 'lat' => $data->lat, 'lng' => $data->lng]); case self::ITEM_TYPE_PEERING: return ""; case self::ITEM_TYPE_SERVICE: return Yii::t('topology', 'Domain'); case self::ITEM_TYPE_NETWORK: return Yii::t('topology', 'Network'); case self::ITEM_TYPE_DEVICE: $dev = Device::findOne($this->item_id); return Yii::t('topology', '<b>Device</b>: {node}<br><b>Latitude</b>: {lat}, <b>Longitude</b>: {lng}', ['node' => $data->node, 'lat' => $data->lat, 'lng' => $data->lng]); case self::ITEM_TYPE_BIPORT: return Yii::t('topology', 'Port'); case self::ITEM_TYPE_UNIPORT: $port = Port::findOneArraySelect($this->item_id, ['urn']); $vlan = $data->vlan ? Yii::t('topology', ' - <b>VLAN Range</b>: {vlan}', ['vlan' => $data->vlan]) : ""; return Yii::t('topology', '<b>Unidirectional Port</b>: {urn}', ['urn' => $port['urn']]) . $vlan; case self::ITEM_TYPE_LINK: return Yii::t('topology', '<b>Link to Port</b>: {dst_urn}', ['dst_urn' => $data->dst_urn]); default: return Yii::t('topology', 'Error'); } case self::TYPE_CREATE: switch ($this->item_type) { case self::ITEM_TYPE_DOMAIN: return ""; case self::ITEM_TYPE_PROVIDER: return Yii::t('topology', '<b>Provider</b>: {name}<br><b>Type</b>: {type}<br><b>Latitude</b>: {lat}' . ', <b>Longitude</b>: {lng}', ['name' => $data->name, 'type' => Provider::getTypeLabels()[$data->type], 'lat' => $data->lat, 'lng' => $data->lng]); case self::ITEM_TYPE_PEERING: return Yii::t('topology', '<b>Provider</b>: {nsa}<br><b>Peering with</b>: {dstNsaId}', ['nsa' => $data->srcNsaId, 'dstNsaId' => $data->dstNsaId]); case self::ITEM_TYPE_SERVICE: return Yii::t('topology', '<b>Provider</b>: {nsa}<br><b>Service</b>: {type}<br><b>URL</b>: {url}', ['nsa' => $data->provNsa, 'url' => $data->url, 'type' => Service::getTypeLabels()[$data->type]]); case self::ITEM_TYPE_NETWORK: $location = $data->lat ? Yii::t('topology', '<br><b>Latitude</b>: {lat}, <b>Longitude</b>: {lng}', ['lat' => $data->lat, 'lng' => $data->lng]) : ""; return Yii::t('topology', '<b>Network</b>: {urn}', ['urn' => $data->urn]) . $location; case self::ITEM_TYPE_DEVICE: $location = $data->lat ? Yii::t('topology', '<br><b>Latitude</b>: {lat}, <b>Longitude</b>: {lng}', ['lat' => $data->lat, 'lng' => $data->lng]) : ""; return Yii::t('topology', '<b>Device</b>: {node}', ['node' => $data->node]) . $location; case self::ITEM_TYPE_BIPORT: $vlan = $data->vlan ? Yii::t('topology', '<br><b>VLAN Range</b>: {vlan}', ['vlan' => $data->vlan]) : ""; return Yii::t('topology', '<b>Device</b>: {node}<br><b>Port</b>: {urn}', ['urn' => $data->urn, 'node' => $data->node]) . $vlan; case self::ITEM_TYPE_UNIPORT: $vlan = $data->vlan ? Yii::t('topology', '<br><b>VLAN Range</b>: {vlan}', ['vlan' => $data->vlan]) : ""; return Yii::t('topology', '<b>Bidirectional Port</b>: {biPortUrn}<br><b>Port</b>: {urn}', ['urn' => $data->urn, 'biPortUrn' => $data->biPortUrn]) . $vlan; case self::ITEM_TYPE_LINK: return Yii::t('topology', '<b>From</b>: {src}<br><b>To</b>: {dst}', ['dst' => $data->dst_urn, 'src' => $data->urn]); default: return Yii::t('topology', 'Error'); } } }