Skip to content
Snippets Groups Projects
Commit 183b094a authored by Remco Tukker's avatar Remco Tukker
Browse files

add the page with the service matrix questions

parent fd10228e
No related branches found
No related tags found
No related merge requests found
...@@ -2202,6 +2202,667 @@ ...@@ -2202,6 +2202,667 @@
} }
], ],
"title": "Network" "title": "Network"
},
{
"name": "services",
"elements": [
{
"type": "matrixdropdown",
"name": "services_collaboration",
"state": "collapsed",
"title": "Collaboration services",
"hideCheckboxLabels": true,
"columns": [
{
"name": "offered",
"title": "Service offered",
"cellType": "checkbox",
"choices": [
{
"value": "yes",
"text": "Yes"
}
]
},
{
"name": "name",
"title": "Service name",
"cellType": "text",
"visibleIf": "{row.offered} = ['yes']"
},
{
"name": "description",
"title": "Official description",
"cellType": "comment",
"visibleIf": "{row.offered} = ['yes']",
"rows": 2
},
{
"name": "additional_information",
"title": "Additional information",
"cellType": "comment",
"visibleIf": "{row.offered} = ['yes']",
"rows": 2,
"placeholder": "(e.g. software used, third party service, links, etc.)"
}
],
"cellType": "checkbox",
"rows": [
{
"text":"E-portfolio service",
"value":"e-portfolio",
"customDescription":"Functions to create user professional and career portfolios"
},
{
"text":"Identifier Registry",
"value":"identifier-reg",
"customDescription":"Registering of unique and automatically-processable identifiers in the form of text or numeric strings"
},
{
"text":"Journal access",
"value":"journal-library-access",
"customDescription":"Access to academic journals"
},
{
"text":"Mailing lists",
"value":"mailing-lists",
"customDescription":"Service for operation of electronic discussion lists"
},
{
"text":"Project collaboration",
"value":"project-collaboration-toolkit",
"customDescription":"Packaged services or virtual project groups e.g. mailing lists, storage, web meetings, wiki."
},
{
"text":"Scheduling tool",
"value":"scheduling-tool",
"customDescription":"Provision of tools to users for scheduling appointments or classes"
},
{
"text":"Survey/polling tool",
"value":"survey-tool",
"customDescription":"Provision of applications for creating surveys or polls"
},
{
"text":"VLE",
"value":"virtual-learning-environment",
"customDescription":"Online e-learning education system that provides virtual access to resources used in teaching"
},
{
"text":"VoIP",
"value":"voip",
"customDescription":"Service to deliver voice communications and multimedia sessions over Internet Protocal (IP) networks"
},
{
"text":"Web hosting",
"value":"web-email-hosting",
"customDescription":"Service to provide space on central web servers for users to publish their website"
}
],
"rowTitleWidth": "20%"
},
{
"type": "matrixdropdown",
"name": "services_identity",
"state": "collapsed",
"title": "Identity services",
"hideCheckboxLabels": true,
"columns": [
{
"name": "offered",
"title": "Service offered",
"cellType": "checkbox",
"choices": [
{
"value": "yes",
"text": "Yes"
}
]
},
{
"name": "name",
"title": "Service name",
"cellType": "text",
"visibleIf": "{row.offered} = ['yes']"
},
{
"name": "description",
"title": "Official description",
"cellType": "comment",
"visibleIf": "{row.offered} = ['yes']",
"rows": 2
},
{
"name": "additional_information",
"title": "Additional information",
"cellType": "comment",
"visibleIf": "{row.offered} = ['yes']",
"rows": 2,
"placeholder": "(e.g. software used, third party service, links, etc.)"
}
],
"cellType": "checkbox",
"rows": [
{
"text":"Hosted campus AAI",
"value":"aai",
"customDescription":"Hosting of an Identity Provider service on behalf of connected Institutions to authenticate users"
},
{
"text":"Eduroam",
"value":"eduroam-wifi",
"customDescription":"Inter-WLAN service to facilitate easy and secure Internet access for roaming educationals users"
},
{
"text":"Interfederation",
"value":"interfederation",
"customDescription":"Participation in an interfederation (i.e. eduGAIN, KALMAR)"
}
],
"rowTitleWidth": "20%"
},
{
"type": "matrixdropdown",
"name": "services_isp",
"state": "collapsed",
"title": "ISP services",
"hideCheckboxLabels": true,
"columns": [
{
"name": "offered",
"title": "Service offered",
"cellType": "checkbox",
"choices": [
{
"value": "yes",
"text": "Yes"
}
]
},
{
"name": "name",
"title": "Service name",
"cellType": "text",
"visibleIf": "{row.offered} = ['yes']"
},
{
"name": "description",
"title": "Official description",
"cellType": "comment",
"visibleIf": "{row.offered} = ['yes']",
"rows": 2
},
{
"name": "additional_information",
"title": "Additional information",
"cellType": "comment",
"visibleIf": "{row.offered} = ['yes']",
"rows": 2,
"placeholder": "(e.g. software used, third party service, links, etc.)"
}
],
"cellType": "checkbox",
"rows": [
{
"text":"Domain name registration",
"value":"domain-registration",
"customDescription":"Adminstration/registration of top and second level domain names"
},
{
"text":"IP address allocation",
"value":"ip-address-allocation",
"customDescription":"Allocating addresses for users according to the RIPE policies"
},
{
"text":"National IX operation",
"value":"ix-operation",
"customDescription":"Operating an IX with national importance"
},
{
"text":"Nameserver services",
"value":"nameserver",
"customDescription":"Operation of nameservers and maintenance of DNS information on behalf of users"
},
{
"text":"NTP service",
"value":"timeserver-ntp",
"customDescription":"Allows the synchronization of computer clocks over the internet"
}
],
"rowTitleWidth": "20%"
},
{
"type": "matrixdropdown",
"name": "services_multimedia",
"state": "collapsed",
"title": "Multimedia services",
"hideCheckboxLabels": true,
"columns": [
{
"name": "offered",
"title": "Service offered",
"cellType": "checkbox",
"choices": [
{
"value": "yes",
"text": "Yes"
}
]
},
{
"name": "name",
"title": "Service name",
"cellType": "text",
"visibleIf": "{row.offered} = ['yes']"
},
{
"name": "description",
"title": "Official description",
"cellType": "comment",
"visibleIf": "{row.offered} = ['yes']",
"rows": 2
},
{
"name": "additional_information",
"title": "Additional information",
"cellType": "comment",
"visibleIf": "{row.offered} = ['yes']",
"rows": 2,
"placeholder": "(e.g. software used, third party service, links, etc.)"
}
],
"cellType": "checkbox",
"rows": [
{
"text":"TV/radio streaming",
"value":"internet-radio-tv",
"customDescription":"Internet and radio streaming services"
},
{
"text":"Event recording/streaming",
"value":"videoconferencing",
"customDescription":"Provision of equipment and/or software to support event streaming/recording"
},
{
"text":"Provision of content portal",
"value":"video-portal",
"customDescription":"Multi-media content portal"
},
{
"text":"Web/desktop conferencing",
"value":"web-conferencing",
"customDescription":"Video conferencing service to desktops and hand-held devices using software"
}
],
"rowTitleWidth": "20%"
},
{
"type": "matrixdropdown",
"name": "services_network",
"state": "collapsed",
"title": "Network services",
"hideCheckboxLabels": true,
"columns": [
{
"name": "offered",
"title": "Service offered",
"cellType": "checkbox",
"choices": [
{
"value": "yes",
"text": "Yes"
}
]
},
{
"name": "name",
"title": "Service name",
"cellType": "text",
"visibleIf": "{row.offered} = ['yes']"
},
{
"name": "description",
"title": "Official description",
"cellType": "comment",
"visibleIf": "{row.offered} = ['yes']",
"rows": 2
},
{
"name": "additional_information",
"title": "Additional information",
"cellType": "comment",
"visibleIf": "{row.offered} = ['yes']",
"rows": 2,
"placeholder": "(e.g. software used, third party service, links, etc.)"
}
],
"cellType": "checkbox",
"rows": [
{
"text":"IP Connectivity",
"value":"connectivity",
"customDescription":"Basic IP connectivity services inc R&E and commodity internet"
},
{
"text":"Remote access VPN server",
"value":"home-vpn",
"customDescription":"Remote access and site-to-site VPN"
},
{
"text":"IPv6",
"value":"ipv6",
"customDescription":"The new version of the internet protocol (IP) that will eventually replace IPv4"
},
{
"text":"Optical wavelength",
"value":"lambda !!! TODO is this correct???",
"customDescription":"Layer 1 optical channel for provision of dedicated capacity to demanding users"
},
{
"text":"Managed router service",
"value":"managed-router",
"customDescription":"Remote router support for institutions"
},
{
"text":"Multicast",
"value":"multicast",
"customDescription":"Extension to the IP protocol which allows individual packets to be sent to multiple hosts on the internet"
},
{
"text":"Netflow tool",
"value":"netflow",
"customDescription":"Network protocol of collecting IP traffic and monitoring network traffic"
},
{
"text":"Network troubleshooting",
"value":"user-monitoring !! TODO is this correct???",
"customDescription":"Enables users at connected institutions to monitor Internet services in real time"
},
{
"text":"Network monitoring",
"value":"network-monitoring",
"customDescription":"Network Information System that shows the current and past performance of the network"
},
{
"text":"Open Lightpath Exchange",
"value":"open-lightpath-exchange",
"customDescription":"Provision of an Open Lightpath exchange for users to connect to other users"
},
{
"text":"PERT",
"value":"pert",
"customDescription":"Team supporting resolution of end-to-end performance problems for networked applications"
},
{
"text":"Virtual circuit/VPN",
"value":"point-to-point-circuit-vpn",
"customDescription":"Virtual point to point circuits or VPNs delivered as a service to users "
},
{
"text":"Quality of Service",
"value":"quality-of-service",
"customDescription":"Preferential service to specific applications or classes of applications"
}
],
"rowTitleWidth": "20%"
},
{
"type": "matrixdropdown",
"name": "services_professional",
"state": "collapsed",
"title": "Professional services",
"hideCheckboxLabels": true,
"columns": [
{
"name": "offered",
"title": "Service offered",
"cellType": "checkbox",
"choices": [
{
"value": "yes",
"text": "Yes"
}
]
},
{
"name": "name",
"title": "Service name",
"cellType": "text",
"visibleIf": "{row.offered} = ['yes']"
},
{
"name": "description",
"title": "Official description",
"cellType": "comment",
"visibleIf": "{row.offered} = ['yes']",
"rows": 2
},
{
"name": "additional_information",
"title": "Additional information",
"cellType": "comment",
"visibleIf": "{row.offered} = ['yes']",
"rows": 2,
"placeholder": "(e.g. software used, third party service, links, etc.)"
}
],
"cellType": "checkbox",
"rows": [
{
"text":"Consultancy/training",
"value":"consultancy",
"customDescription":"Training and consultancy services provided by the NREN"
},
{
"text":"Dissemination",
"value":"dissemination",
"customDescription":"Dissemination of information to users e.g newsletters and magazines"
},
{
"text":"Procurement/brokerage",
"value":"procurement",
"customDescription":"Procurement services and framework agreements"
},
{
"text":"Software licenses",
"value":"software-licenses",
"customDescription":"Provision of software for organisational or institutional purchase"
},
{
"text":"User conferences",
"value":"user-conference",
"customDescription":"Hosting of regular user conferences"
},
{
"text":"User portals",
"value":"user-portal",
"customDescription":"User portals for service management and monitoring"
}
],
"rowTitleWidth": "20%"
},
{
"type": "matrixdropdown",
"name": "services_security",
"state": "collapsed",
"title": "Security services",
"hideCheckboxLabels": true,
"columns": [
{
"name": "offered",
"title": "Service offered",
"cellType": "checkbox",
"choices": [
{
"value": "yes",
"text": "Yes"
}
]
},
{
"name": "name",
"title": "Service name",
"cellType": "text",
"visibleIf": "{row.offered} = ['yes']"
},
{
"name": "description",
"title": "Official description",
"cellType": "comment",
"visibleIf": "{row.offered} = ['yes']",
"rows": 2
},
{
"name": "additional_information",
"title": "Additional information",
"cellType": "comment",
"visibleIf": "{row.offered} = ['yes']",
"rows": 2,
"placeholder": "(e.g. software used, third party service, links, etc.)"
}
],
"cellType": "checkbox",
"rows": [
{
"text":"Anti-spam solution",
"value":"anti-spam",
"customDescription":"Anti-Spam solutions for detecting and eliminating viruses and spam mails"
},
{
"text":"CERT/CSIRT",
"value":"csirt",
"customDescription":"A single point of contact for users to deal with computer security incidents and prevention"
},
{
"text":"DDoS mitigation",
"value":"ddos-prevention",
"customDescription":"Tools and techniques for mitigating Distributed Denial of Service attacks"
},
{
"text":"Firewall-on-demand",
"value":"firewall-on-demand",
"customDescription":"Provision of a dynamic firewall services to mitigate against DDoS attacks"
},
{
"text":"Intrusion detection",
"value":"intrusion",
"customDescription":"System for detecting and preventing Intrusions (IDS/IPS)"
},
{
"text":"PGP key server",
"value":"pgp-key",
"customDescription":"Operation of PGP key server"
},
{
"text":"Security auditing",
"value":"security-audit",
"customDescription":"Carrying out vulnerability assessments and security reviews of user systems and resources on their behalf"
},
{
"text":"Vulnerability scanning",
"value":"vulnerability-testing",
"customDescription":"Vulnerability service that allows users to scan their own IP networks fo security holes"
},
{
"text":"Web filtering",
"value":"web-filtering",
"customDescription":"Centralised web content filtering service for protection against access to inappropriate content"
}
],
"rowTitleWidth": "20%"
},
{
"type": "matrixdropdown",
"name": "services_hosting",
"state": "collapsed",
"title": "Storage & hosting services",
"hideCheckboxLabels": true,
"columns": [
{
"name": "offered",
"title": "Service offered",
"cellType": "checkbox",
"choices": [
{
"value": "yes",
"text": "Yes"
}
]
},
{
"name": "name",
"title": "Service name",
"cellType": "text",
"visibleIf": "{row.offered} = ['yes']"
},
{
"name": "description",
"title": "Official description",
"cellType": "comment",
"visibleIf": "{row.offered} = ['yes']",
"rows": 2
},
{
"name": "additional_information",
"title": "Additional information",
"cellType": "comment",
"visibleIf": "{row.offered} = ['yes']",
"rows": 2,
"placeholder": "(e.g. software used, third party service, links, etc.)"
}
],
"cellType": "checkbox",
"rows": [
{
"text":"Cloud storage (end user)",
"value":"cloud-service-end-user",
"customDescription":"Browser-based virtual storage service for individuals"
},
{
"text":"Content delivery hosting",
"value":"content-delivery-hosting",
"customDescription":"Hosting of contenct delivery servers, e.g. Akamai"
},
{
"text":"Disaster recovery",
"value":"disaster-recovery",
"customDescription":"Off site backup services"
},
{
"text":"DNS hosting",
"value":"dns-server",
"customDescription":"Hosting of primary and secondary DNS servers"
},
{
"text":"Email server hosting",
"value":"email-services",
"customDescription":"NREN hosted email servers."
},
{
"text":"Filesender",
"value":"filesender",
"customDescription":"Web-based application that allows authenticated userds to securely and easily send arbitrarily large files"
},
{
"text":"SaaS",
"value":"saas",
"customDescription":"Software as a service e.g. Google Apps for Education"
},
{
"text":"Housing/co-location",
"value":"storage-co-location",
"customDescription":"Hosting of user equipment in a managed data centre"
},
{
"text":"Virtual machines/IaaS",
"value":"virtual-machines-iaas",
"customDescription":"Access to virtual computing resources"
}
],
"rowTitleWidth": "20%"
}
],
"title": "Services"
} }
], ],
"sendResultOnPageNext": true, "sendResultOnPageNext": true,
......
This diff is collapsed.
import React, { useState, useEffect } from "react"; import React, { useState, useEffect } from "react";
import { Model } from "survey-core"; import { Model, Serializer } from "survey-core";
import { Survey } from "survey-react-ui"; import { Survey } from "survey-react-ui";
import "survey-core/modern.min.css"; import "survey-core/modern.min.css";
import './survey.scss';
Serializer.addProperty("itemvalue", "customDescription:text");
Serializer.addProperty("question", "hideCheckboxLabels:boolean");
function SurveyComponent() { function SurveyComponent() {
...@@ -78,6 +83,36 @@ function SurveyComponent() { ...@@ -78,6 +83,36 @@ function SurveyComponent() {
]; ];
}); });
survey.onUpdateQuestionCssClasses.add(function(_, options) {
if (options.question.hideCheckboxLabels) {
const classes = options.cssClasses;
classes.root += " hidden-checkbox-labels";
}
});
survey.onAfterRenderQuestion.add(function(survey, options){
// TODO this is unfortunately bugged after changing a matrix value, it
// seems this event isnt called then while the matrix is in fact re-rendered..
// get the customDescription for matrix rows and set it in the title
// attribute so that it shows up as a hover popup
if (options.question.getType() === "matrixdropdown") {
const table = options.htmlElement.querySelector("tbody")!;
const rows = table.querySelectorAll("tr")!;
options.question.rows.forEach((row, i) => {
if (row.customDescription !== undefined) {
rows[i].children[0].setAttribute("title", row.customDescription);
}
});
}
});
setSurveyModel(survey); setSurveyModel(survey);
} }
......
.hidden-checkbox-labels .sv-checkbox .sv-item__control-label {
visibility: hidden;
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment