Wajahat698 commited on
Commit
e5e0aee
·
verified ·
1 Parent(s): 6ea869c

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +70 -39
app.py CHANGED
@@ -504,32 +504,48 @@ def download_link(content, filename):
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():
@@ -662,12 +678,27 @@ def side():
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,16 +706,13 @@ def side():
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,25 +722,27 @@ def side():
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,11 +751,12 @@ def side():
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,7 +764,7 @@ def side():
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")
 
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():
 
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
  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
  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
  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
  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")