Files
Tống Thành Đạt a44d005c13 feat(cms): enhance policy editor with fullscreen mode and date picking
Improve the policy content management experience by adding a dedicated fullscreen editing mode and a structured date picker for effective dates.
- Implement fullscreen toggle in `policies-block-editor.js` with corresponding CSS for an expanded workspace
- Add `date` field type to `sharedFields.js` and integrate it into `policiesConfig.js`
- Implement date parsing and formatting utilities in `editor-script.ejs` to handle "Effective Date" strings
- Update `policiesController.js` to use `updateOne` for more reliable document persistence and state reloading
- Add support for `ICON_OPTIONS` in the policy editor configuration
- Refine editor UI layout and overflow handling for better stability with long content strings
2026-04-22 12:02:00 +07:00

334 lines
16 KiB
JSON

{
"hero": {
"badge": "Policies",
"icon": "fa-scale-balanced",
"titlePrefix": "Our Commitment to",
"titleHighlight": "Transparency",
"description": "Review our policies, terms of service, and commitments to privacy and accessibility. We believe in clear, straightforward communication with our academic community.",
"lastUpdated": "Last updated: April 22, 2026"
},
"sidebar": {
"heading": "Policies",
"helperText": "Need clarification on a policy?",
"contactLabel": "Contact Policy Team",
"contactHref": "/contact"
},
"policies": [
{
"id": "privacy",
"navLabel": "Privacy Policy",
"title": "Privacy Policy",
"effectiveDate": "Effective Date: September 15, 2025",
"intro": "At LAMS, we are committed to protecting your privacy and ensuring the security of your personal information. This Privacy Policy outlines how we collect, use, and safeguard the data of our students, applicants, and website visitors.",
"content": {
"blocks": [
{
"id": "1-information-we-collect-qa-20260422-041603",
"type": "heading",
"level": 2,
"html": "<span>1. Information We Collect QA 20260422 041603</span>"
},
{
"id": "1-information-we-collect-qa-20260422-041603-intro",
"type": "paragraph",
"html": "<p><b>We collect information directly from students and applicants. Validation marker QA 20260422 041603.</b></p>"
},
{
"id": "block-1776821411652-j34gz",
"type": "quote",
"html": "<p>Quote QA 20260422 0127</p>",
"caption": "QA Source"
},
{
"id": "1-information-we-collect-qa-20260422-041603-2",
"type": "list",
"style": "unordered",
"items": [
{
"id": "personal-identification-information-such-as-name-address-email-address-phone-number-date-of-birth-and-government-issued-id-numbers-where-required",
"html": "<p>Personal identification information such as name, address, email address, phone number, date of birth, and government-issued ID numbers where required.</p>"
},
{
"id": "financial-information-such-as-payment-details-financial-aid-applications-and-billing-history",
"html": "<p>Financial information such as payment details, financial aid applications, and billing history.</p>"
},
{
"id": "audit-ready-retention-notice-qa-20260422-041603",
"html": "<p>Audit-ready retention notice QA 20260422 041603</p>"
}
]
},
{
"id": "3-data-sharing-and-third-parties",
"type": "heading",
"level": 2,
"html": "<span>3. Data Sharing and Third Parties</span>"
},
{
"id": "we-do-not-sell-your-personal-information-we-may-share-your-data-with-trusted-third-party-service-providers-who-assist-us-in-operating-our-university-including-learning-management-systems-and-payment-processors-these-partners-are-bound-by-strict-confidentiality-agreements-for-more-details-refer-to-our-vendor-data-processing-addendum",
"type": "paragraph",
"html": "<p>We do not sell your personal information. We may share your data with trusted third-party service providers who assist us in operating our university, including learning management systems and payment processors. These partners are bound by strict confidentiality agreements. For more details, refer to our Vendor Data Processing Addendum.</p>"
},
{
"id": "if-you-have-questions-about-this-policy-please-contact-our-data-protection-officer-at-privacy-lams-edu",
"type": "paragraph",
"html": "<p>If you have questions about this policy, please contact our Data Protection Officer at privacy@LAMS.edu.</p>"
},
{
"id": "for-policy-navigation-see-terms-of-use-qa-20260422-041603",
"type": "paragraph",
"html": "<p>For policy navigation, see Terms of Use QA 20260422 041603.</p>"
},
{
"id": "2-how-we-use-your-information",
"type": "heading",
"level": 2,
"html": "<span>2. How We Use Your Information</span>"
},
{
"id": "2-how-we-use-your-information-intro",
"type": "paragraph",
"html": "<p>Your information is primarily used to provide educational services and manage your student journey. Specific uses include:</p>"
},
{
"id": "2-how-we-use-your-information-2",
"type": "list",
"style": "unordered",
"items": [
{
"id": "processing-admissions-applications-and-enrollment",
"html": "<p>Processing admissions applications and enrollment.</p>"
},
{
"id": "delivering-course-materials-grades-and-academic-advising",
"html": "<p>Delivering course materials, grades, and academic advising.</p>"
},
{
"id": "processing-tuition-payments-and-administering-financial-aid",
"html": "<p>Processing tuition payments and administering financial aid.</p>"
},
{
"id": "communicating-important-university-updates-and-policy-changes",
"html": "<p>Communicating important university updates and policy changes.</p>"
}
]
}
]
}
},
{
"id": "terms",
"navLabel": "Terms of Use",
"title": "Terms of Use",
"effectiveDate": "Effective Date: January 1, 2025",
"intro": "Welcome to LAMS. By accessing our website, student portal, or utilizing our educational services, you agree to be bound by these Terms of Use and our Privacy Policy.",
"content": {
"blocks": [
{
"id": "1-academic-integrity",
"type": "heading",
"level": 2,
"html": "<span>1. Academic Integrity</span>"
},
{
"id": "as-a-student-of-lams-you-are-expected-to-uphold-the-highest-standards-of-academic-honesty-plagiarism-cheating-and-the-unauthorized-sharing-of-course-materials-are-strictly-prohibited-and-may-result-in-disciplinary-action",
"type": "paragraph",
"html": "<p>As a student of LAMS, you are expected to uphold the highest standards of academic honesty. Plagiarism, cheating, and the unauthorized sharing of course materials are strictly prohibited and may result in disciplinary action.</p>"
},
{
"id": "2-account-security",
"type": "heading",
"level": 2,
"html": "<span>2. Account Security</span>"
},
{
"id": "you-are-responsible-for-maintaining-the-confidentiality-of-your-student-portal-credentials-you-must-immediately-notify-the-it-helpdesk-of-any-unauthorized-use-of-your-account",
"type": "paragraph",
"html": "<p>You are responsible for maintaining the confidentiality of your student portal credentials. You must immediately notify the IT Helpdesk of any unauthorized use of your account.</p>"
},
{
"id": "course-materials",
"type": "callout",
"tone": "info",
"title": "Course Materials",
"icon": "fa-book-open",
"html": "<p>All course content provided via the learning management system is the intellectual property of LAMS or its licensors. It is for personal educational use only.</p>"
},
{
"id": "subscription-terms",
"type": "callout",
"tone": "info",
"title": "Subscription Terms",
"icon": "fa-credit-card",
"html": "<p>Monthly subscriptions automatically renew unless canceled prior to the billing cycle. See the Financial Policies for refund criteria.</p><p><a href=\"#\">Financial Policies</a></p>"
}
]
}
},
{
"id": "accessibility",
"navLabel": "Accessibility Statement",
"title": "Accessibility Statement",
"effectiveDate": "Effective Date: September 15, 2025",
"intro": "LAMS is committed to providing digital learning experiences that are accessible to all students, applicants, faculty, and visitors.",
"content": {
"blocks": [
{
"id": "1-our-accessibility-commitments",
"type": "heading",
"level": 2,
"html": "<span>1. Our Accessibility Commitments</span>"
},
{
"id": "1-our-accessibility-commitments-2",
"type": "list",
"style": "unordered",
"items": [
{
"id": "we-design-learning-materials-and-digital-services-with-accessibility-in-mind",
"html": "<p>We design learning materials and digital services with accessibility in mind.</p>"
},
{
"id": "we-review-core-student-journeys-for-keyboard-access-screen-reader-support-and-readable-contrast",
"html": "<p>We review core student journeys for keyboard access, screen reader support, and readable contrast.</p>"
},
{
"id": "we-provide-reasonable-accommodations-through-our-student-support-and-advising-teams",
"html": "<p>We provide reasonable accommodations through our student support and advising teams.</p>"
}
]
},
{
"id": "2-requesting-support",
"type": "heading",
"level": 2,
"html": "<span>2. Requesting Support</span>"
},
{
"id": "if-you-encounter-an-accessibility-barrier-contact-our-support-team-so-we-can-review-the-issue-and-provide-an-appropriate-path-forward",
"type": "paragraph",
"html": "<p>If you encounter an accessibility barrier, <a href=\"/contact\">contact our support team</a> so we can review the issue and provide an appropriate path forward.</p>"
}
]
}
},
{
"id": "cookies",
"navLabel": "Cookie Preferences",
"title": "Cookie Preferences",
"effectiveDate": "Effective Date: September 15, 2025",
"intro": "We use cookies and similar technologies to operate our website, understand usage patterns, and improve the student experience.",
"content": {
"blocks": [
{
"id": "1-cookie-categories",
"type": "heading",
"level": 2,
"html": "<span>1. Cookie Categories</span>"
},
{
"id": "1-cookie-categories-2",
"type": "list",
"style": "unordered",
"items": [
{
"id": "essential-cookies-keep-core-services-such-as-authentication-and-security-running",
"html": "<p>Essential cookies keep core services such as authentication and security running.</p>"
},
{
"id": "analytics-cookies-help-us-understand-aggregate-site-usage-and-improve-content",
"html": "<p>Analytics cookies help us understand aggregate site usage and improve content.</p>"
},
{
"id": "preference-cookies-remember-non-sensitive-choices-such-as-language-and-display-settings",
"html": "<p>Preference cookies remember non-sensitive choices such as language and display settings.</p>"
}
]
},
{
"id": "2-managing-preferences",
"type": "heading",
"level": 2,
"html": "<span>2. Managing Preferences</span>"
},
{
"id": "you-can-manage-cookies-through-your-browser-settings-some-essential-cookies-cannot-be-disabled-because-they-are-required-for-secure-access-to-student-services",
"type": "paragraph",
"html": "<p>You can manage cookies through your browser settings. Some essential cookies cannot be disabled because they are required for secure access to student services.</p>"
}
]
}
},
{
"navLabel": "hehehehehehehehehehehehehehehehehehehehe",
"title": "hehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehe",
"effectiveDate": "Effective Date: April 22, 2026",
"intro": "hehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehe",
"id": "hehehe",
"content": {
"blocks": [
{
"id": "block-1776828969787-k3scn",
"type": "heading",
"level": 1,
"html": "<p>hehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehe</p>"
},
{
"id": "block-1776828970153-r5lpx",
"type": "paragraph",
"html": "<p>Paragraph persist QA 2.</p>"
},
{
"id": "block-1776828972201-p2bgf",
"type": "list",
"style": "ordered",
"items": [
{
"id": "block-1776828972201-p2bgf-item-1",
"html": "<p>Item A2</p>"
},
{
"id": "block-1776828972201-p2bgf-item-2",
"html": "<p>hehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehe</p>"
}
]
},
{
"id": "block-1776828974269-s4z7m",
"type": "quote",
"html": "<p>hehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehe</p>",
"caption": "Persist Source 2"
},
{
"id": "block-1776828976335-unxd1",
"type": "callout",
"tone": "success",
"title": "Callout Persist 2",
"icon": "fa-circle-check",
"html": "<p>hehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehe</p>"
},
{
"id": "block-1776828978384-r45ps",
"type": "divider"
},
{
"id": "block-1776829917567-zycm5",
"type": "callout",
"tone": "success",
"title": "Callout save repro",
"icon": "fa-c",
"html": "<p>hehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehehe</p>"
},
{
"id": "block-1776829967348-g03qc",
"type": "callout",
"tone": "warning",
"title": "Callout save fixed",
"icon": "fa-envelope",
"html": "<p>Callout body fixed persist</p>"
}
]
}
}
]
}