[% PageVersion = 'Documentation/index.tt,v 1.7 2025/01/20 shanta Exp shanta ' %]
[% META title = 'Comserv Documentation' %]
[% IF c.session.debug_mode == 1 %]
[% PageVersion %]
[% END %]
[%# Determine user role for display %]
[% SET display_role = 'Guest' %]
[% IF c.session.roles %]
[% IF c.session.roles.grep('admin').size %]
[% SET display_role = 'Administrator' %]
[% ELSIF c.session.roles.grep('developer').size %]
[% SET display_role = 'Developer' %]
[% ELSIF c.session.roles.grep('editor').size %]
[% SET display_role = 'Editor' %]
[% ELSIF c.session.roles.grep('user').size %]
[% SET display_role = 'User' %]
[% END %]
[% END %]
[% IF c.session.debug_mode == 1 %]
Debug Information
User Role from Controller: [% user_role %]
Display Role from Template: [% display_role %]
Session Roles: [% c.session.roles.join(', ') IF c.session.roles %]
Debug Message: [% debug_msg %]
Categories Available:
- user_guides: [% categories.user_guides ? 'Yes' : 'No' %]
- tutorials: [% categories.tutorials ? 'Yes' : 'No' %]
- site_specific: [% categories.site_specific ? 'Yes' : 'No' %]
- admin_guides: [% categories.admin_guides ? 'Yes' : 'No' %]
- proxmox: [% categories.proxmox ? 'Yes' : 'No' %]
- controllers: [% categories.controllers ? 'Yes' : 'No' %]
- models: [% categories.models ? 'Yes' : 'No' %]
- changelog: [% categories.changelog ? 'Yes' : 'No' %]
- general: [% categories.general ? 'Yes' : 'No' %]
Changelog Entries:
[% IF categories.changelog && categories.changelog.pages.size > 0 %]
[% FOREACH page_name IN categories.changelog.pages.sort.reverse %]
[% page = structured_pages.$page_name %]
-
[% page_name %] -
Title: [% page.title %],
Description: [% page.description %],
Date: [% page.date %]
[% END %]
[% ELSE %]
- No changelog entries found.
[% END %]
Controller Documentation Files:
[% IF categories.controllers && categories.controllers.pages.size > 0 %]
[% FOREACH page_name IN categories.controllers.pages.sort %]
- [% page_name %] - [% structured_pages.$page_name ? 'Found' : 'Not Found' %]
[% END %]
[% ELSE %]
- No controller documentation files found.
[% END %]
Model Documentation Files:
[% IF categories.models && categories.models.pages.size > 0 %]
[% FOREACH page_name IN categories.models.pages.sort %]
- [% page_name %] - [% structured_pages.$page_name ? 'Found' : 'Not Found' %]
[% END %]
[% ELSE %]
- No model documentation files found.
[% END %]
[%# Enhanced hybrid approach with better error handling and fallbacks %]
[%# Debug information for hybrid approach %]
[% IF c.session.debug_mode == 1 %]
[% page_id.replace('_', ' ').replace('-', ' ') | ucfirst %]
Documentation file referenced in [% category_name %] but not found in auto-discovery.
[% IF c.session.debug_mode == 1 %]
Page ID: [% page_id %]
[% END %]
[% END %]
[% END %]
[%# Enhanced category rendering with better error handling %]
[% MACRO render_category_section(category_key, category_data, section_id, icon_class) BLOCK %]
[% RETURN UNLESS category_data %]
[% page_count = category_data.pages ? category_data.pages.size : 0 %]
[% RETURN UNLESS page_count > 0 %]
Directory Structure Update
We are normalizing to a single Documentation directory (capitalized) to reduce confusion.
Legacy references to lowercase documentation directories are being updated to use this standardized structure.
[% IF is_admin %]
[% END %]
[%# User-facing sections %]
[% render_category_section('user_guides', categories.user_guides, 'user-guides-section', 'fas fa-users') %]
[% render_category_section('tutorials', categories.tutorials, 'tutorials-section', 'fas fa-graduation-cap') %]
[% render_category_section('site_specific', categories.site_specific, 'site-specific-section', 'fas fa-building') %]
[% render_category_section('developer_guides', categories.developer_guides, 'developer-guides-section', 'fas fa-code') %]
[%# Admin-only sections %]
[% # Use the is_admin flag passed from the controller %]
[% IF is_admin %]
[% # Debug output %]
[% IF c.session.debug_mode == 1 %]
Admin sections visible: user_role=[% user_role %], session roles=[% c.session.roles.join(',') IF c.session.roles %]
[% END %]
[% render_category_section('admin_guides', categories.admin_guides, 'admin-guides-section', 'fas fa-shield-alt') %]
[% render_category_section('proxmox', categories.proxmox, 'proxmox-section', 'fas fa-server') %]
[% render_category_section('controllers', categories.controllers, 'controllers-section', 'fas fa-cogs') %]
[% render_category_section('models', categories.models, 'models-section', 'fas fa-database') %]
[% render_category_section('changelog', categories.changelog, 'changelog-section', 'fas fa-history') %]
[%# Fallback: If no changelog category, try to find changelog pages directly %]
[% IF !categories.changelog || !categories.changelog.pages.size %]
[% IF structured_pages %]
[% changelog_pages = [] %]
[% FOREACH page_id IN structured_pages.keys %]
[% IF page_id.match('changelog') || structured_pages.$page_id.path.match('changelog') %]
[% changelog_pages.push(page_id) %]
[% END %]
[% END %]
[% IF changelog_pages.size > 0 %]
System updates and changes (found via auto-discovery). Admin Only
[% FOREACH page_id IN changelog_pages.sort.reverse %]
[% render_page_link(page_id, 'Changelog') %]
[% END %]
[% END %]
[% END %]
[% END %]
[% END %]