Skip to content

Conversation

@wingmann2
Copy link

When picking a color for the classification banner, this is always set to white as hardcoded value "#fff". When selecting certain color shades (ex. bright yellow) this banner is unreadable. This change would allow the user to select the color of the text to go along with the paired background color. This may be typically white or black, however this picker allows the user more flexibility with styling and further compliance.

image

@Bionic711
Copy link
Collaborator

@wingmann2
In function_settings.py, add a default value in the get_settings def.
Other than that, just need you to do this: #526 (comment)

@wingmann2
Copy link
Author

@wingmann2 please read the following Contributor License Agreement(CLA). If you agree with the CLA, please reply with the following information.

@microsoft-github-policy-service agree [company="{your company}"]

Options:

  • (default - no company specified) I have sole ownership of intellectual property rights to my Submissions and I am not making Submissions in the course of work for my employer.
@microsoft-github-policy-service agree
  • (when company given) I am making Submissions in the course of work for my employer (or my employer has intellectual property rights in my Submissions by contract or applicable law). I have permission from my employer to make Submissions and enter into this Agreement on behalf of my employer. By signing below, the defined term “You” includes me and my employer.
@microsoft-github-policy-service agree company="Microsoft"

Contributor License Agreement

Contribution License Agreement

This Contribution License Agreement (“Agreement”) is agreed to by the party signing below (“You”), and conveys certain license rights to Microsoft Corporation and its affiliates (“Microsoft”) for Your contributions to Microsoft open source projects. This Agreement is effective as of the latest signature date below.

  1. Definitions.
    “Code” means the computer software code, whether in human-readable or machine-executable form,
    that is delivered by You to Microsoft under this Agreement.
    “Project” means any of the projects owned or managed by Microsoft and offered under a license
    approved by the Open Source Initiative (www.opensource.org).
    “Submit” is the act of uploading, submitting, transmitting, or distributing code or other content to any
    Project, including but not limited to communication on electronic mailing lists, source code control
    systems, and issue tracking systems that are managed by, or on behalf of, the Project for the purpose of
    discussing and improving that Project, but excluding communication that is conspicuously marked or
    otherwise designated in writing by You as “Not a Submission.”
    “Submission” means the Code and any other copyrightable material Submitted by You, including any
    associated comments and documentation.
  2. Your Submission. You must agree to the terms of this Agreement before making a Submission to any
    Project. This Agreement covers any and all Submissions that You, now or in the future (except as
    described in Section 4 below), Submit to any Project.
  3. Originality of Work. You represent that each of Your Submissions is entirely Your original work.
    Should You wish to Submit materials that are not Your original work, You may Submit them separately
    to the Project if You (a) retain all copyright and license information that was in the materials as You
    received them, (b) in the description accompanying Your Submission, include the phrase “Submission
    containing materials of a third party:” followed by the names of the third party and any licenses or other
    restrictions of which You are aware, and (c) follow any other instructions in the Project’s written
    guidelines concerning Submissions.
  4. Your Employer. References to “employer” in this Agreement include Your employer or anyone else
    for whom You are acting in making Your Submission, e.g. as a contractor, vendor, or agent. If Your
    Submission is made in the course of Your work for an employer or Your employer has intellectual
    property rights in Your Submission by contract or applicable law, You must secure permission from Your
    employer to make the Submission before signing this Agreement. In that case, the term “You” in this
    Agreement will refer to You and the employer collectively. If You change employers in the future and
    desire to Submit additional Submissions for the new employer, then You agree to sign a new Agreement
    and secure permission from the new employer before Submitting those Submissions.
  5. Licenses.
  • Copyright License. You grant Microsoft, and those who receive the Submission directly or
    indirectly from Microsoft, a perpetual, worldwide, non-exclusive, royalty-free, irrevocable license in the
    Submission to reproduce, prepare derivative works of, publicly display, publicly perform, and distribute
    the Submission and such derivative works, and to sublicense any or all of the foregoing rights to third
    parties.
  • Patent License. You grant Microsoft, and those who receive the Submission directly or
    indirectly from Microsoft, a perpetual, worldwide, non-exclusive, royalty-free, irrevocable license under
    Your patent claims that are necessarily infringed by the Submission or the combination of the
    Submission with the Project to which it was Submitted to make, have made, use, offer to sell, sell and
    import or otherwise dispose of the Submission alone or with the Project.
  • Other Rights Reserved. Each party reserves all rights not expressly granted in this Agreement.
    No additional licenses or rights whatsoever (including, without limitation, any implied licenses) are
    granted by implication, exhaustion, estoppel or otherwise.
  1. Representations and Warranties. You represent that You are legally entitled to grant the above
    licenses. You represent that each of Your Submissions is entirely Your original work (except as You may
    have disclosed under Section 3). You represent that You have secured permission from Your employer to
    make the Submission in cases where Your Submission is made in the course of Your work for Your
    employer or Your employer has intellectual property rights in Your Submission by contract or applicable
    law. If You are signing this Agreement on behalf of Your employer, You represent and warrant that You
    have the necessary authority to bind the listed employer to the obligations contained in this Agreement.
    You are not expected to provide support for Your Submission, unless You choose to do so. UNLESS
    REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING, AND EXCEPT FOR THE WARRANTIES
    EXPRESSLY STATED IN SECTIONS 3, 4, AND 6, THE SUBMISSION PROVIDED UNDER THIS AGREEMENT IS
    PROVIDED WITHOUT WARRANTY OF ANY KIND, INCLUDING, BUT NOT LIMITED TO, ANY WARRANTY OF
    NONINFRINGEMENT, MERCHANTABILITY, OR FITNESS FOR A PARTICULAR PURPOSE.
  2. Notice to Microsoft. You agree to notify Microsoft in writing of any facts or circumstances of which
    You later become aware that would make Your representations in this Agreement inaccurate in any
    respect.
  3. Information about Submissions. You agree that contributions to Projects and information about
    contributions may be maintained indefinitely and disclosed publicly, including Your name and other
    information that You submit with Your Submission.
  4. Governing Law/Jurisdiction. This Agreement is governed by the laws of the State of Washington, and
    the parties consent to exclusive jurisdiction and venue in the federal courts sitting in King County,
    Washington, unless no federal subject matter jurisdiction exists, in which case the parties consent to
    exclusive jurisdiction and venue in the Superior Court of King County, Washington. The parties waive all
    defenses of lack of personal jurisdiction and forum non-conveniens.
  5. Entire Agreement/Assignment. This Agreement is the entire agreement between the parties, and
    supersedes any and all prior agreements, understandings or communications, written or oral, between
    the parties relating to the subject matter hereof. This Agreement may be assigned by Microsoft.

@microsoft-github-policy-service agree company="Microsoft"

@wingmann2
Copy link
Author

wingmann2 commented Nov 20, 2025

@wingmann2 In function_settings.py, add a default value in the get_settings def. Other than that, just need you to do this: #526 (comment)

@Bionic711 Adding settings to funcitons_settings.py . Noticed there was also missing classification settings for related background color and default text that was not referenced before.

@Bionic711 Bionic711 requested a review from Copilot November 20, 2025 13:50
@Bionic711
Copy link
Collaborator

@wingmann2 I have requested the Copilot review. Resolve out the two conflicts and once the Copilot review is done, we can merge!

Copilot finished reviewing on behalf of Bionic711 November 20, 2025 13:54
Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull Request Overview

This PR adds a text color picker for the classification banner to improve readability when using light background colors. The hardcoded white text color (#fff) is replaced with a user-configurable option that defaults to white (#ffffff) for backward compatibility.

Key Changes:

  • Added a new color picker input field for banner text color in admin settings
  • Updated the classification banner display to use the configurable text color
  • Set default text color to #ffffff across all configuration files

Additional Change:

  • Fixed an unrelated bug in admin_plugins.js where the plugins modal failed to load with sidenav navigation

Reviewed Changes

Copilot reviewed 8 out of 8 changed files in this pull request and generated 2 comments.

Show a summary per file
File Description
application/single_app/templates/base.html Updated banner inline style to use configurable text color instead of hardcoded #fff
application/single_app/templates/admin_settings.html Added text color picker input field, updated preview to display selected text color, and added JavaScript to handle text color in preview
application/single_app/static/js/admin/admin_plugins.js Fixed DOM element check from agents-tab to actions-configuration for sidenav compatibility
application/single_app/route_frontend_admin_settings.py Added extraction and storage of banner text color from form data with #ffffff default
application/single_app/functions_settings.py Added default value for classification_banner_text_color in settings
application/single_app/config.py Incremented version from 0.229.062 to 0.229.063
application/external_apps/databaseseeder/artifacts/admin_settings.json Added classification_banner_text_color field with #ffffff default to seeder data
RELEASE_NOTES.md Added release notes for v0.229.063 documenting the admin plugins modal fix
Comments suppressed due to low confidence (1)

application/single_app/templates/admin_settings.html:2878

  • The JavaScript event listener for textColorInput is missing. While the textColorInput element is retrieved and used in the updatePreview() function, there's no event listener attached to it. This means the preview won't update when the user changes the text color.

Add an event listener for the text color input:

if (textInput && colorInput && preview) {
    textInput.addEventListener('input', updatePreview);
    colorInput.addEventListener('input', updatePreview);
    textColorInput.addEventListener('input', updatePreview);  // Add this line
}
        if (textInput && colorInput && preview) {
            textInput.addEventListener('input', updatePreview);
            colorInput.addEventListener('input', updatePreview);
        }

wingmann2 and others added 3 commits November 20, 2025 11:24
* fix video indexer auth

* fixed video indexer support

* fixed video indexer support

* fix video indexer support

* fixed video indexer support

* added support for .xlsm

* fixed all scope issue

* added supprot for xml, yaml, and log

#### **JSON**

- Uses `RecursiveJsonSplitter`:
  - `max_chunk_size=600`
  - `convert_lists=True`
- Produces JSON strings that retain original structure.
- See `process_json_file`.

#### **XML**

- Uses `RecursiveCharacterTextSplitter` with XML-aware separators.
- **Structure-preserving chunking**:
  - Separators prioritized: `\n\n` → `\n` → `>` (end of XML tags) → space → character
  - Splits at logical boundaries to maintain tag integrity
- **Chunked by 4000 characters** with 200-character overlap for context preservation.
- **Goal**: Preserve XML structure while providing manageable chunks for LLM processing.
- See `process_xml`.

#### **YAML / YML**

- Processed using regex word splitting (similar to TXT).
- **Chunked by 400 words**.
- Maintains YAML structure through simple word-based splitting.
- See `process_yaml`.

#### **LOG**

- Processed using line-based chunking to maintain log record integrity.
- **Never splits mid-line** to preserve complete log entries.
- **Line-Level Chunking**:
  1. Split file by lines using `splitlines(keepends=True)` to preserve line endings.
  2. Accumulate complete lines until reaching target word count ≈1000 words.
  3. When adding next line would exceed target AND chunk already has content:
     - Finalize current chunk
     - Start new chunk with current line
  4. If single line exceeds target, it gets its own chunk to prevent infinite loops.
  5. Emit chunks with complete log records.
- **Goal**: Provide substantial log context (1000 words) while ensuring no log entry is split across chunks.
- See `process_log`.

* updated yaml to use recursivesplitter

* removed chunk overlap for yaml and xml

* added support for older .doc files and .docm

* added keyword and abstract for each doc in citation

* added multi-modal input support

* added ai vision analysis
@paullizer
Copy link
Contributor

@wingmann2, unfortunately, I cannot resolve the conflicts via the browser, please review them. If you have any questions, let me know. Im around Mon-Wed this week.

@wingmann2
Copy link
Author

wingmann2 commented Nov 26, 2025

@wingmann2, unfortunately, I cannot resolve the conflicts via the browser, please review them. If you have any questions, let me know. Im around Mon-Wed this week.

@paullizer I can't either, although it says changes can be cleanly merged. Between forks and upkeeping sources it makes conflicts difficult. May I be added to the contributor status for this project to be able to maintain branches directly without forking?

@Bionic711
Copy link
Collaborator

You resolve the conflicts in your local branch and push them. The PR will pick up on them and then we will be able to merge. The best way, in my opinion given the files, would be to rebase your branch onto Development. Accept the incoming changes where appropriate (or both if needed). Let me know if you need assistance with the rebase. A merge would also solve the problem, but will muddy the commit history.

@wingmann2 wingmann2 closed this Nov 26, 2025
@wingmann2 wingmann2 deleted the development branch November 26, 2025 17:46
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants