The Brown Hats Software Depot: F' Around & Find Out!

Login | Register (Invite Only)

pagetelegram's Profile

Title: Page Telegram of Amfile.org

Description: Brown Hats Collective F' Around and Find Out user of the Interwebs and Project Developer for a Cause Toward Insuring a Future of Liberty without Illusion.

@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@=:---#@@@#%@@@*=+#@%====@@@@..:--@#====@-==#@@@+===#@%=-+@... -@@@@*@@@=+@%-*@
@@@.*@-.@@@.:@@==@:=@+ -..*@@@:# @:@=.=. #%.#@@@@ ::..@.%#.@@ %+ %@@% #@@-.@+ #@
@@@.*@+.@@@:.@@.#@%*@*.@.-*@@%@#.@.@=.%..#% *@@@@ %:+:+:@@=@@ #+ %@@+..@@= %: @@
@@@..-.=@@:* %@.%#=+@+..:@@@@@@*.@@@=..:@@@ %@%%% :.@@+-@:=#@ ...@@@:+ @@+ :- @@
@@@.+@@@@@.- =@.#@.-@*.@:=@@@@@+ @@@+:@-:@% @@*=@ @=%#+-@-.#@ @*.%@@.- #@=. + @@
@@@.+@@@@+.@..@:*%.*@*.@%.@@@@%- +@@=:@%.@@.%@:=@ @@=*#:@::@@ *# =@--% -@:- * @@
@@-::#@@%::+::*@-:=%@::.::@@@@+-::@*:.:::@::...%:::::#@*:==@#==@+:*.:=::%:-=::=@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@#-.  .-#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@*.        .+@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@-            :@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@:              .@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@:      .++:      .@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@=     :@@@@@@-     -@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@#     =@@@@@@@@+     #@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@:    =@@@@@@@@@@+    .@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@#    .@@@@@@@@@@@@.    *@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@.    %@@@@@@@@@@@@%.    @@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@%    -@@@@@@@@@@@@@@-    #@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@=    #@@@@@@@@@@@@@@%    -@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@.   .@@@@@@@@@@@@@@@@.   .@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@    -@@@@%##***#%@@@@+    %@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@*    %@#:..       .:+@%    *@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@=    =.               :    -@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@:                          .@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@.                          .@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@.       .=%@@@@@@@+:       .@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@#      .%@@@@@@@@@@@@@-      -@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@#     .*@@@@@@@@@@@@@@@@%:     -@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@%.    .@@@@@@*%@@@@%#@@@@@@=     *@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@.    :@@@@@@@@:-@@*.%@@@@@@@+     %@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@+    :@@@@@@@@@@---.@@@@@@@@@@=    :@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@.    @@@@@@@@@@@.   @@@@@@@@@@@:    #@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@=    #@@@+--#@@@@    #@@@@%#@@@@@.   .@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@.   :@%-     .%@@-  .@@@*.   .+@@=    #@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@#    *+.       .@@@#*@@@=       .#@    -@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@-   .#          =@@-.@@%.         +=   .@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@.   -@.          @@. %@:          #%    %@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@.   #@-          +%  =%          .@@.   *@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@%    %@%          :+  .+          +@@.   =@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@#    @@@:         .:  .-         .@@@:   -@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@*   .@@@%         #   .#         =@@@:   :@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@*   .@@@@=       -@    @-       .@@@@:   :@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@#    @@@@@.     .@@    @@.      %@@@@:   -@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@%    %@@@@@:   :@@@    @@@.   .*@@@@@.   =@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@.   #@@@@@@#+#@@@@    @@@@=.:%@@@@@@.   *@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@.   :@@@@@@-..:*@@    @@#-..:%@@@@@#    %@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@-   .@@@@@:     .@    @.     .@@@@@-   .@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@#    *@@@%       @.  .@       *@@@@    -@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@.   .@@@+       @-  .@.      -@@@=    #@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@+    +@@%.     .@*  :@-     .*@@%.   .@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@.    %@@@-    *@%  #@%.   :%@@@.    %@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@*    .@@@@%=-+@@@. @@@*--#@@@@-    -@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@:    .@@@@@@@@@@*=@@@@@@@@@@:     @@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@.    .%@@@@@@@@@@@@@@@@@@@-    .#@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@%.     +@@@@@@@@@@@@@@@@#.     +@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@%.     .+@@@@@@@@@@@@%:      +@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@%.       -*%@@@@@#=.      .*@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@:                      .%@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@#.                   +@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@+.              .=@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@=.        .-%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@%%###%@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@

Repositories

Viewing: changelog.html.txt

<script type="text/javascript">
        var gk_isXlsx = false;
        var gk_xlsxFileLookup = {};
        var gk_fileData = {};
        function filledCell(cell) {
          return cell !== '' && cell != null;
        }
        function loadFileData(filename) {
        if (gk_isXlsx && gk_xlsxFileLookup[filename]) {
            try {
                var workbook = XLSX.read(gk_fileData[filename], { type: 'base64' });
                var firstSheetName = workbook.SheetNames[0];
                var worksheet = workbook.Sheets[firstSheetName];

                // Convert sheet to JSON to filter blank rows
                var jsonData = XLSX.utils.sheet_to_json(worksheet, { header: 1, blankrows: false, defval: '' });
                // Filter out blank rows (rows where all cells are empty, null, or undefined)
                var filteredData = jsonData.filter(row => row.some(filledCell));

                // Heuristic to find the header row by ignoring rows with fewer filled cells than the next row
                var headerRowIndex = filteredData.findIndex((row, index) =>
                  row.filter(filledCell).length >= filteredData[index + 1]?.filter(filledCell).length
                );
                // Fallback
                if (headerRowIndex === -1 || headerRowIndex > 25) {
                  headerRowIndex = 0;
                }

                // Convert filtered JSON back to CSV
                var csv = XLSX.utils.aoa_to_sheet(filteredData.slice(headerRowIndex)); // Create a new sheet from filtered array of arrays
                csv = XLSX.utils.sheet_to_csv(csv, { header: 1 });
                return csv;
            } catch (e) {
                console.error(e);
                return "";
            }
        }
        return gk_fileData[filename] || "";
        }
        </script><!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>SurveyGram Changelog</title>
    <link rel="stylesheet" href="styles/brownhatsurvey.css">
</head>
<body>
    <div class="container">
        <h1>SurveyGram Changelog</h1>
        <p>This changelog documents the updates and improvements made to SurveyGram, a flexible survey system by Page Telegram Volunteer Services.</p>

        <h2>Version 2.16 - August 2025</h2>
        <ul>
            <li>Fixed CSV export in <code>export.php</code> to include the <code>timestamp</code> field as a column, resolving the issue where it displayed as "N/A".</li>
            <li>Simplified form rendering in <code>survey.php</code> to ensure <code>options</code>, <code>text</code>, and <code>comments</code> question types render correctly, with fallback choices for <code>options</code> questions.</li>
            <li>Verified CSS to prevent form elements from being hidden.</li>
        </ul>

        <h2>Version 2.15 - August 2025</h2>
        <ul>
            <li>Fixed rendering issue in <code>survey.php</code> by adding support for <code>"options"</code> question type, rendering a <code>&lt;select&gt;</code> dropdown with choices from the JSON, matching the provided survey format.</li>
            <li>Updated <code>new_survey.php</code> and <code>edit_survey.php</code> to use <code>"options"</code> type instead of <code>"scale"</code>, with a predefined list of choices for consistency with existing surveys.</li>
            <li>Retained backward compatibility for <code>"scale"</code> questions to support existing surveys.</li>
        </ul>

        <h2>Version 2.14 - August 2025</h2>
        <ul>
            <li>Fixed issue in <code>survey.php</code> where text and scale form elements were not rendering for end users, ensuring all question types (text, scale, comments, link, divider) display correctly.</li>
            <li>Added validation and error logging for invalid question types in survey JSON to improve debugging.</li>
            <li>Added link to <code>changelog.html</code> in the admin dashboard for easier access.</li>
        </ul>

        <h2>Version 2.13 - August 2025</h2>
        <ul>
            <li>Fixed issue in <code>survey.php</code> where text and scale form elements were not rendering, ensuring all question types (text, scale, comments, link, divider) display correctly.</li>
            <li>Renamed submission timestamp field from <code>submitted_at</code> to <code>timestamp</code> in results JSON (<code>data/results/$code-$user.json</code> and <code>data/surveys/$code.json</code>).</li>
            <li>Restored full functionality in <code>survey.php</code> and <code>admin.php</code> to address file size reduction, ensuring bookmarking script, survey management, and CSS editor are intact.</li>
        </ul>

        <h2>Version 2.12 - August 2025</h2>
        <ul>
            <li>Added timestamp recording for survey completions, storing the submission date and time in <code>submitted_at</code> field (format: <code>Y-m-d H:i:s</code>) in the results JSON file (<code>data/results/$code-$user.json</code>).</li>
            <li>Added CSS editor in the admin dashboard (<code>admin.php</code>), allowing administrators to edit and save <code>styles/brownhatsurvey.css</code> directly from the interface.</li>
        </ul>

        <h2>Version 2.11 - August 2025</h2>
        <ul>
            <li>Fixed text alignment issue ensuring survey question text, comment text, link descriptions, and introduction paragraphs are consistently left-justified using <code>text-align: left !important</code> in CSS to override global centering.</li>
            <li>Maintained centered alignment for survey title, divider labels, buttons, and other non-question elements for design consistency.</li>
        </ul>

        <h2>Version 2.10 - August 2025</h2>
        <ul>
            <li>Updated CSS to left-justify question text, comment text, and link descriptions in surveys, aligning with the business-style formatting of the introduction.</li>
            <li>Preserved centered alignment for survey title, divider labels, and buttons.</li>
        </ul>

        <h2>Version 2.9 - August 2025</h2>
        <ul>
            <li>Changed survey introduction styling to left-justified, business-style format with paragraph indentations (2em) instead of centered text.</li>
            <li>Updated <code>survey.php</code> to render introduction as multiple <code>&lt;p&gt;</code> tags, splitting by newlines, with CSS handling indentation.</li>
        </ul>

        <h2>Version 2.8 - August 2025</h2>
        <ul>
            <li>Added optional comment blocks after text, scale, and comments questions, controlled by a checkbox in survey creation/editing interfaces.</li>
            <li>Introduced <code>has_comments</code> JSON field to store comment block preference, automatically inserting a "Any comments or questions?" comment question after selected questions.</li>
            <li>Updated sequence handling to assign comment blocks a sequence number one greater than the parent question (e.g., 11 for a question at 10).</li>
        </ul>

        <h2>Version 2.7 - August 2025</h2>
        <ul>
            <li>Updated <code>admin.php</code> to accept password via an input form if not provided in the URL, improving security and accessibility.</li>
            <li>Modified admin dashboard title "SurveyGram" to link to <code>index.php</code> for easier navigation.</li>
        </ul>

        <h2>Version 2.6 - August 2025</h2>
        <ul>
            <li>Replaced fixed 1-7 scale with user-specified variable scale for survey questions, allowing creators to set custom <code>scale_min</code> and <code>scale_max</code>.</li>
            <li>Added "Skip" (value 0) as the default option for scale questions, automatically selected if no choice is made by the user.</li>
        </ul>

        <h2>Version 2.5 - August 2025</h2>
        <ul>
            <li>Created <code>setup.php</code> to generate all SurveyGram files and directories, streamlining deployment.</li>
            <li>Updated sequence numbering to increment by 10 (e.g., 10, 20, 30) for easier reordering of survey questions.</li>
            <li>Applied <code>nl2br()</code> to render carriage returns as <code>&lt;br&gt;</code> tags in survey titles, introductions, question text, and divider labels.</li>
        </ul>

        <h2>Version 1.13 - Initial Release</h2>
        <ul>
            <li>Initial release of SurveyGram with core functionality for creating, taking, and managing surveys.</li>
            <li>Features included survey code validation, user ID generation, JSON-based storage, export to JSON/CSV, and admin dashboard with basic CRUD operations.</li>
            <li>Styled with a monochrome orange-on-black theme using <code>brownhatsurvey.css</code>.</li>
        </ul>

        <p><a href="index.php" class="button-link">Return to SurveyGram</a></p>
    </div>
</body>
</html>