Wajahat698 commited on
Commit
481459b
·
verified ·
1 Parent(s): e5e0aee

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +39 -70
app.py CHANGED
@@ -504,50 +504,34 @@ def download_link(content, filename):
504
 
505
 
506
 
507
- def fetch_documents(user_id):
508
- try:
509
- docs = db.child("users").child(user_id).child("documents").get().val()
510
- return docs if docs else {}
511
- except Exception as e:
512
- st.sidebar.error(f"Error fetching documents: {e}")
513
- return {}
514
 
515
- def delete_document(user_id, doc_id):
516
- try:
517
- db.child("users").child(user_id).child("documents").child(doc_id).remove()
518
- st.sidebar.success("Document deleted successfully.")
519
- except Exception as e:
520
- st.sidebar.error(f"Error deleting document: {e}")
521
 
522
- def save_trustbuilder(user_id, brand, trust_builder, trust_bucket):
 
 
 
 
523
  try:
524
- trust_id = str(uuid.uuid4())
525
- db.child("users").child(user_id).child("TrustBuilder").child(trust_id).set({
526
- "brand": brand,
527
- "message": trust_builder,
528
- "bucket": trust_bucket
529
- })
530
- st.sidebar.success("TrustBuilder saved successfully.")
531
  except Exception as e:
532
- st.sidebar.error(f"Error saving TrustBuilder: {e}")
533
 
534
- def fetch_trustbuilders(user_id, keyword=None, brand=None, bucket=None):
 
 
 
 
535
  try:
536
- trustbuilders = db.child("users").child(user_id).child("TrustBuilder").get().val()
537
- if trustbuilders:
538
- filtered_trustbuilders = {
539
- k: v for k, v in trustbuilders.items()
540
- if (not keyword or keyword.lower() in v["message"].lower()) and
541
- (not brand or brand.lower() in v["brand"].lower()) and
542
- (not bucket or bucket == v["bucket"])
543
- }
544
- return filtered_trustbuilders
545
- return {}
546
  except Exception as e:
547
- st.sidebar.error(f"Error fetching TrustBuilders: {e}")
548
  return {}
549
 
550
 
 
551
  def side():
552
  with st.sidebar:
553
 
@@ -678,27 +662,12 @@ def side():
678
 
679
  # Image paths and labels (pre-resized images in your folder)
680
  st.sidebar.header("TrustVault®")
681
-
682
- # Saved Documents Section
683
  st.sidebar.subheader("Saved documents")
684
  st.sidebar.text_area("Save documents like your brand tonality, key phrases, or segments here", height=80, disabled=True)
685
-
686
- # Scrollable container for displaying saved documents
687
- st.sidebar.markdown("""
688
- <style>
689
- .scrollable-container {
690
- max-height: 300px;
691
- overflow-y: auto;
692
- border: 1px solid #ddd;
693
- padding: 10px;
694
- border-radius: 5px;
695
- }
696
- </style>
697
- """, unsafe_allow_html=True)
698
-
699
- st.sidebar.markdown('<div class="scrollable-container">', unsafe_allow_html=True)
700
  docs = fetch_documents(st.session_state["wix_user_id"])
701
-
702
  if docs:
703
  for doc_id, doc_data in docs.items():
704
  st.sidebar.markdown(f"**Document ID:** {doc_id[:8]}")
@@ -706,13 +675,16 @@ def side():
706
  public_url = doc_data.get("public_url", "URL not available")
707
  if public_url != "URL not available":
708
  st.sidebar.markdown(f"[View Full Document]({public_url})", unsafe_allow_html=True)
709
- if st.button(f"Delete {doc_id[:8]}", key=f"del_{doc_id}"):
710
- delete_document(st.session_state["wix_user_id"], doc_id)
 
 
711
  else:
712
  st.sidebar.write("No saved documents found.")
713
  st.sidebar.markdown('</div>', unsafe_allow_html=True)
714
-
715
  # File Upload Section
 
716
  col1, col2 = st.sidebar.columns([0.5, 0.5])
717
  with col1:
718
  uploaded_files = st.file_uploader("Upload PDF, DOCX, or TXT files", type=["pdf", "docx", "txt"], accept_multiple_files=True)
@@ -722,27 +694,25 @@ def side():
722
  merged_md_content = merge_markdown_contents(md_contents)
723
  public_url = upload_to_firebase(st.session_state["wix_user_id"], merged_md_content)
724
  if public_url:
 
725
  doc_id = str(uuid.uuid4())
726
  db.child(f"/users/{st.session_state['wix_user_id']}/documents/{doc_id}").set({
727
  "content": merged_md_content,
728
  "public_url": public_url
729
  })
730
  st.sidebar.success("Files uploaded and saved successfully!")
731
- with col2:
732
- if st.button("Delete"):
733
- st.warning("Select a document to delete from the list above.")
734
-
735
  # Show My TrustBuilders Section
736
  st.sidebar.subheader("Show my TrustBuilders®")
737
  search_query = st.sidebar.text_input("Search by keyword", key="keyword")
738
- brand_input = st.sidebar.text_input("Brand/Product/Person", key="brand")
739
- bucket = None
740
- if st.sidebar.button("Show"):
741
- bucket = st.session_state.get("selected_bucket")
742
- search_results = fetch_trustbuilders(st.session_state["wix_user_id"], keyword=search_query, brand=brand_input, bucket=bucket)
743
  for result_id, result_data in search_results.items():
744
  st.sidebar.write(f"- {result_data['message'][:50]}")
745
-
746
  # Trust Bucket Selection
747
  st.sidebar.write("and choose the Trust Bucket®")
748
  trust_buckets = ["S", "D", "R", "B", "V", "C"]
@@ -751,12 +721,11 @@ def side():
751
  for idx, (bucket, label) in enumerate(zip(trust_buckets, bucket_labels)):
752
  with cols[idx]:
753
  if st.button(f"{bucket}", key=f"bucket_{label}"):
754
- st.session_state["selected_bucket"] = label
755
- st.write(f"Selected Trust Bucket: {label}")
756
-
757
  # Save TrustBuilders Section
758
  st.sidebar.subheader("Save TrustBuilders®")
759
- brand = st.sidebar.text_input("Brand/Product/Person")
760
  trust_builder_text = st.sidebar.text_area("Type/paste Trust Builder®", height=100)
761
 
762
  # Allocate TrustBuilders to Buckets
@@ -764,7 +733,7 @@ def side():
764
  for idx, (bucket, label) in enumerate(zip(trust_buckets, bucket_labels)):
765
  with st.sidebar:
766
  if st.button(f"{bucket}", key=f"allocate_{label}"):
767
- save_trustbuilder(st.session_state["wix_user_id"], brand, trust_builder_text, trust_bucket=label)
768
 
769
  if st.sidebar.button("Let AI allocate"):
770
  st.write("AI allocated the Trust Bucket")
 
504
 
505
 
506
 
 
 
 
 
 
 
 
507
 
 
 
 
 
 
 
508
 
509
+ # Function to delete a document from Firebase
510
+ def delete_document(user_id, doc_id):
511
+ """
512
+ Deletes a document from Firebase.
513
+ """
514
  try:
515
+ db.child("users").child(user_id).child("KnowledgeBase").child(doc_id).remove()
516
+ st.success("Document deleted successfully!")
517
+ st.rerun() # Refresh the list after deletion
 
 
 
 
518
  except Exception as e:
519
+ st.error(f"Error deleting document: {e}")
520
 
521
+ # Fetch documents from Firebase
522
+ def fetch_documents(user_id):
523
+ """
524
+ Fetches all saved documents from Firebase.
525
+ """
526
  try:
527
+ docs = db.child("users").child(user_id).child("KnowledgeBase").get().val()
528
+ return docs if docs else {}
 
 
 
 
 
 
 
 
529
  except Exception as e:
530
+ st.error(f"Error fetching documents: {e}")
531
  return {}
532
 
533
 
534
+
535
  def side():
536
  with st.sidebar:
537
 
 
662
 
663
  # Image paths and labels (pre-resized images in your folder)
664
  st.sidebar.header("TrustVault®")
665
+
666
+ # Saved Documents Section
667
  st.sidebar.subheader("Saved documents")
668
  st.sidebar.text_area("Save documents like your brand tonality, key phrases, or segments here", height=80, disabled=True)
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
669
  docs = fetch_documents(st.session_state["wix_user_id"])
670
+
671
  if docs:
672
  for doc_id, doc_data in docs.items():
673
  st.sidebar.markdown(f"**Document ID:** {doc_id[:8]}")
 
675
  public_url = doc_data.get("public_url", "URL not available")
676
  if public_url != "URL not available":
677
  st.sidebar.markdown(f"[View Full Document]({public_url})", unsafe_allow_html=True)
678
+
679
+ # Add delete button for each document
680
+ if st.button(f"Delete: {doc_id[:8]}", key=f"del_{doc_id}"):
681
+ delete_document(st.session_state["wix_user_id"], public_url)
682
  else:
683
  st.sidebar.write("No saved documents found.")
684
  st.sidebar.markdown('</div>', unsafe_allow_html=True)
685
+
686
  # File Upload Section
687
+ st.sidebar.subheader("Upload New Documents")
688
  col1, col2 = st.sidebar.columns([0.5, 0.5])
689
  with col1:
690
  uploaded_files = st.file_uploader("Upload PDF, DOCX, or TXT files", type=["pdf", "docx", "txt"], accept_multiple_files=True)
 
694
  merged_md_content = merge_markdown_contents(md_contents)
695
  public_url = upload_to_firebase(st.session_state["wix_user_id"], merged_md_content)
696
  if public_url:
697
+ # Save document reference and public URL to Firebase
698
  doc_id = str(uuid.uuid4())
699
  db.child(f"/users/{st.session_state['wix_user_id']}/documents/{doc_id}").set({
700
  "content": merged_md_content,
701
  "public_url": public_url
702
  })
703
  st.sidebar.success("Files uploaded and saved successfully!")
704
+ st.sidebar.markdown(f"[View your knowledge base here]({public_url})", unsafe_allow_html=True)
705
+ else:
706
+ st.sidebar.warning("No valid files uploaded.")
707
+
708
  # Show My TrustBuilders Section
709
  st.sidebar.subheader("Show my TrustBuilders®")
710
  search_query = st.sidebar.text_input("Search by keyword", key="keyword")
711
+ if search_query:
712
+ search_results = {k: v for k, v in st.session_state.get("TrustBuilder", {}).items() if search_query.lower() in v["message"].lower()}
 
 
 
713
  for result_id, result_data in search_results.items():
714
  st.sidebar.write(f"- {result_data['message'][:50]}")
715
+
716
  # Trust Bucket Selection
717
  st.sidebar.write("and choose the Trust Bucket®")
718
  trust_buckets = ["S", "D", "R", "B", "V", "C"]
 
721
  for idx, (bucket, label) in enumerate(zip(trust_buckets, bucket_labels)):
722
  with cols[idx]:
723
  if st.button(f"{bucket}", key=f"bucket_{label}"):
724
+ st.write(f"{label} Trust clicked")
725
+
 
726
  # Save TrustBuilders Section
727
  st.sidebar.subheader("Save TrustBuilders®")
728
+ st.sidebar.text_input("Brand/Product/Person", key="brand_product")
729
  trust_builder_text = st.sidebar.text_area("Type/paste Trust Builder®", height=100)
730
 
731
  # Allocate TrustBuilders to Buckets
 
733
  for idx, (bucket, label) in enumerate(zip(trust_buckets, bucket_labels)):
734
  with st.sidebar:
735
  if st.button(f"{bucket}", key=f"allocate_{label}"):
736
+ save_content(st.session_state["wix_user_id"], trust_builder_text, trust_bucket=label)
737
 
738
  if st.sidebar.button("Let AI allocate"):
739
  st.write("AI allocated the Trust Bucket")