Spaces:
Runtime error
Runtime error
| <body> | |
| {% include 'sidepane.html' %} | |
| <div class="wrapper"> | |
| <section class="main-header" style="border-bottom: none;border-top: none;"> | |
| <div class="container-fluid"> | |
| <div id="company-block" class="form-group left-align" style="display: none;"> | |
| <label for="company" class="ml-3" style="display: inline-block; margin-right: 10px;">Select the Company Name | |
| to view the details <span class="text-danger">*</span> | |
| </label> | |
| <select type="text" id="company" name="company" class="ml-3 form-control" | |
| style="display: inline-block; width: 20%;" required> | |
| <option value="" selected>Select</option> | |
| </select> | |
| </div> | |
| <div class="row"> | |
| <div class="col-lg-4 col-6"> | |
| <div class="small-box bg-info"> | |
| <div class="inner margin-left:10px;"> | |
| <h3 id="knowledgeBaseCount">{{table_count_of_each_table.knowledge_base}}</h3> | |
| <h4>KnowledgeBase</h4> | |
| </div> | |
| <div class="icon"> | |
| <i class="ion ion-bag"></i> | |
| </div> | |
| </div> | |
| </div> | |
| <div class="col-lg-4 col-6"> | |
| <div class="small-box bg-success"> | |
| <div class="inner"> | |
| <h3 id="dataConnectorsCount">{{table_count_of_each_table.data_connectors}}</h3> | |
| <h4>Data connectors</h4> | |
| </div> | |
| <div class="icon"> | |
| <i class="ion ion-stats-bars"></i> | |
| </div> | |
| </div> | |
| </div> | |
| <div class="col-lg-4 col-6"> | |
| <div class="small-box bg-warning"> | |
| <div class="inner"> | |
| <h3 id="apiConnectorsCount">{{table_count_of_each_table.api_connectors}}</h3> | |
| <h4>API Connectors</h4> | |
| </div> | |
| <div class="icon"> | |
| <i class="ion ion-person-add"></i> | |
| </div> | |
| </div> | |
| </div> | |
| <div class="col-lg-4 col-6"> | |
| <div class="small-box bg-warning"> | |
| <div class="inner"> | |
| <h3 id="promptTemplatesCount">{{table_count_of_each_table.prompt_templates}}</h3> | |
| <h4>Prompt_Templates</h4> | |
| </div> | |
| <div class="icon"> | |
| <i class="ion ion-person-add"></i> | |
| </div> | |
| </div> | |
| </div> | |
| </div> | |
| </div> | |
| </section> | |
| </div> | |
| <input type="hidden" id="userRole" name="userRole" value={{role}}> | |
| <input type="hidden" id="company_id" name="company_id" value={{company_id}}> | |
| <input type="hidden" id="username" name="username" value={{username}}> | |
| <input type="hidden" id="company_name" name="company_name" value={{company_name}}> | |
| {% include 'footer.html' %} | |
| <script src="https://cdn.jsdelivr.net/npm/[email protected]/dist/js/adminlte.min.js"></script> | |
| <script src="https://cdn.jsdelivr.net/npm/[email protected]/dist/js/bootstrap.bundle.min.js"></script> | |
| <script> | |
| window.addEventListener('pageshow', function (event) { | |
| if (event.persisted || (window.performance && window.performance.navigation.type === 2)) { | |
| window.location.reload(); | |
| } | |
| }); | |
| document.addEventListener('DOMContentLoaded', function () { | |
| var role1 = document.getElementById("userRole").value; | |
| var company_id1 = document.getElementById("company_id").value; | |
| var company_name1=document.getElementById("company_name").value; | |
| var username1=document.getElementById("username").value; | |
| console.log("companyid in dasshboard",username1); | |
| sessionStorage.setItem('userRole', role1); | |
| // sessionStorage.setItem('siderole',role1); | |
| // sessionStorage.setItem('sidecompanyId',company_id1); | |
| sessionStorage.setItem('company_id', company_id1); | |
| sessionStorage.setItem('company_name',company_name1); | |
| sessionStorage.setItem('username',username1); | |
| if (!role1) { | |
| var roleFromInput = sessionStorage.getItem('userRole'); | |
| sessionStorage.setItem('userRole', roleFromInput); | |
| console.log("Role set in sessionStorage:", roleFromInput); | |
| } else { | |
| sessionStorage.setItem('userRole', role1); | |
| console.log("Retrieved user role from input:", role1); // Debugging | |
| } | |
| if (role1 === "superadmin") { | |
| document.getElementById('company-block').style.display = 'block'; | |
| fetchCompanies(); | |
| } | |
| }); | |
| document.getElementById('company').addEventListener('change', async function () { | |
| const selectedCompany = this.value; | |
| sessionStorage.setItem("company_name",selectedCompany); | |
| if (selectedCompany!== "Select") { | |
| try { | |
| const response = await fetch(`/api/company_id?company_name=${encodeURIComponent(selectedCompany)}`); | |
| if (!response.ok) { | |
| contentSection.style.display = 'none'; | |
| displayErrorMessage("Document details do not exist for this company. Please fill in the details."); | |
| throw new Error('Network response was not ok'); | |
| } | |
| const data = await response.json(); | |
| console.log('data returned', data); | |
| const companyId = data.company_id; | |
| sessionStorage.setItem("company_id",companyId); | |
| console.log("company id for superadmin", company_id); | |
| //document.getElementById('company_id').value = companyId; | |
| if (companyId) { | |
| try { | |
| const countResponse = await fetch(`/api/company_record_count/${companyId}`); | |
| if (!countResponse.ok) { | |
| throw new Error('Network response was not ok'); | |
| } | |
| const countData = await countResponse.json(); | |
| console.log('Count data:', countData); // Log the response data | |
| updateRecordCounts(countData.table_counts); | |
| } catch (error) { | |
| console.error('Error fetching record counts:', error); | |
| } | |
| } else { | |
| clearRecordCounts(); | |
| } | |
| } catch (error) { | |
| console.error('No details for this company ID or data documents:', error); | |
| // displayEmptyTable(); | |
| displayErrorMessage("company details do not exist for this company."); | |
| } | |
| } | |
| }); | |
| function updateRecordCounts(counts) { | |
| // Update the counts displayed in the dashboard | |
| document.getElementById('knowledgeBaseCount').textContent = counts.knowledge_base || 0; | |
| document.getElementById('dataConnectorsCount').textContent = counts.data_connectors || 0; | |
| document.getElementById('apiConnectorsCount').textContent = counts.api_connectors || 0; | |
| document.getElementById('promptTemplatesCount').textContent = counts.prompt_templates || 0; | |
| } | |
| function clearRecordCounts() { | |
| document.getElementById('knowledgeBaseCount').textContent = 0; | |
| document.getElementById('dataConnectorsCount').textContent = 0; | |
| document.getElementById('apiConnectorsCount').textContent = 0; | |
| document.getElementById('promptTemplatesCount').textContent = 0; | |
| } | |
| async function fetchCompanies() { | |
| try { | |
| const response = await fetch('/api/companies'); | |
| if (!response.ok) { | |
| throw new Error('Network response was not ok'); | |
| } | |
| const data = await response.json(); | |
| displayCompanies(data.companies); | |
| } catch (error) { | |
| console.error('Error fetching companies:', error); | |
| } | |
| } | |
| function displayCompanies(companies) { | |
| const companySelect = document.getElementById('company'); | |
| companySelect.innerHTML = '<option value="" selected>Select</option>'; // Reset the dropdown | |
| companies.forEach(company => { | |
| const option = document.createElement('option'); | |
| option.value = company.name; | |
| option.textContent = company.name; | |
| companySelect.appendChild(option); | |
| }); | |
| } | |
| function clearFormFields() { | |
| document.getElementById('APIName').value = ""; | |
| document.getElementById('APIEndpoint').value = ""; | |
| document.getElementById('Auth_Bearer').value = ""; | |
| document.getElementById('Inputjson').value = ""; | |
| document.getElementById('OutputJson').value = ""; | |
| document.getElementById('Description').value = ""; | |
| } | |
| </script> | |
| </body> | |
| </html> |