ApsidalSolid4 commited on
Commit
74b6e3c
Β·
verified Β·
1 Parent(s): 61199b2

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +73 -53
app.py CHANGED
@@ -802,15 +802,27 @@ def setup_interface():
802
  gr.Markdown("Quick mode for faster analysis. Detailed mode for sentence-level analysis.",
803
  elem_classes=["description-text"])
804
 
805
- # Container for radio buttons with embedded file upload
806
- with gr.Row(elem_id="radio-container"):
807
- mode_selection = gr.Radio(
808
- choices=["quick", "detailed"],
809
- value="quick",
810
- label=""
811
- )
 
 
 
 
 
 
 
 
 
 
 
 
812
 
813
- # Buttons row
814
  with gr.Row(elem_id="button-row"):
815
  clear_btn = gr.Button("Clear", elem_id="clear-btn")
816
  analyze_btn = gr.Button("Analyze Text", elem_id="analyze-btn")
@@ -821,22 +833,6 @@ def setup_interface():
821
  output_sentences = gr.Textbox(label="Sentence-by-Sentence Analysis", lines=10)
822
  output_result = gr.Textbox(label="Overall Result", lines=4)
823
 
824
- # Custom file upload area for paperclip
825
- gr.HTML("""
826
- <div id="paperclip-wrapper">
827
- <label for="paperclip-input" id="paperclip-label">πŸ“Ž</label>
828
- <input type="file" id="paperclip-input" style="display:none;">
829
- </div>
830
- """)
831
-
832
- # Add hidden file upload that we'll control with custom JS
833
- file_upload = gr.File(
834
- file_types=["image", "pdf", "doc", "docx"],
835
- type="binary",
836
- visible=False,
837
- elem_id="hidden-file-upload"
838
- )
839
-
840
  # Connect the components
841
  analyze_btn.click(
842
  analyze_text_wrapper,
@@ -856,10 +852,10 @@ def setup_interface():
856
  outputs=[output_html, output_sentences, output_result]
857
  )
858
 
859
- # Add custom CSS and JavaScript
860
  gr.HTML("""
861
  <style>
862
- /* Button styling to match original */
863
  #analyze-btn {
864
  background-color: #FF8C00 !important;
865
  border-color: #FF8C00 !important;
@@ -875,29 +871,65 @@ def setup_interface():
875
 
876
  #button-row {
877
  gap: 10px !important;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
878
  }
879
 
880
- /* Radio button container styling */
881
- #radio-container {
882
- position: relative;
 
 
 
 
 
883
  }
884
 
885
- /* Paperclip styling */
886
- #paperclip-wrapper {
887
- position: absolute;
888
- top: 334px;
889
- left: 160px;
890
- z-index: 100;
891
  }
892
 
893
- #paperclip-label {
894
- cursor: pointer;
895
- font-size: 20px;
896
- opacity: 0.7;
 
 
 
897
  }
898
 
899
- #paperclip-label:hover {
900
- opacity: 1;
 
 
 
 
901
  }
902
 
903
  /* Description text styling */
@@ -908,18 +940,6 @@ def setup_interface():
908
  margin-bottom: 5px !important;
909
  }
910
  </style>
911
-
912
- <script>
913
- // Connect custom paperclip to the hidden file input
914
- document.addEventListener('DOMContentLoaded', function() {
915
- const paperclipLabel = document.getElementById('paperclip-label');
916
- const hiddenFileInput = document.querySelector('#hidden-file-upload input[type="file"]');
917
-
918
- paperclipLabel.addEventListener('click', function() {
919
- hiddenFileInput.click();
920
- });
921
- });
922
- </script>
923
  """)
924
 
925
  return demo
 
802
  gr.Markdown("Quick mode for faster analysis. Detailed mode for sentence-level analysis.",
803
  elem_classes=["description-text"])
804
 
805
+ # Radio buttons with inline file upload
806
+ with gr.Row(elem_id="control-row"):
807
+ # First column for radio buttons
808
+ with gr.Column(scale=10):
809
+ mode_selection = gr.Radio(
810
+ choices=["quick", "detailed"],
811
+ value="quick",
812
+ label=""
813
+ )
814
+
815
+ # Second column for tiny paperclip button
816
+ with gr.Column(scale=1, elem_id="paperclip-column"):
817
+ file_upload = gr.File(
818
+ file_types=["image", "pdf", "doc", "docx"],
819
+ type="binary",
820
+ label="πŸ“Ž",
821
+ elem_id="paperclip-upload",
822
+ elem_classes=["paperclip-button"]
823
+ )
824
 
825
+ # Action buttons row
826
  with gr.Row(elem_id="button-row"):
827
  clear_btn = gr.Button("Clear", elem_id="clear-btn")
828
  analyze_btn = gr.Button("Analyze Text", elem_id="analyze-btn")
 
833
  output_sentences = gr.Textbox(label="Sentence-by-Sentence Analysis", lines=10)
834
  output_result = gr.Textbox(label="Overall Result", lines=4)
835
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
836
  # Connect the components
837
  analyze_btn.click(
838
  analyze_text_wrapper,
 
852
  outputs=[output_html, output_sentences, output_result]
853
  )
854
 
855
+ # Add custom CSS to style everything correctly
856
  gr.HTML("""
857
  <style>
858
+ /* Button styling */
859
  #analyze-btn {
860
  background-color: #FF8C00 !important;
861
  border-color: #FF8C00 !important;
 
871
 
872
  #button-row {
873
  gap: 10px !important;
874
+ margin-top: 10px !important;
875
+ }
876
+
877
+ /* Paperclip styling - make it tiny and minimal */
878
+ #paperclip-column {
879
+ min-width: 30px !important;
880
+ width: 30px !important;
881
+ padding: 0 !important;
882
+ margin-left: -15px !important;
883
+ margin-top: 8px !important;
884
+ }
885
+
886
+ /* Hide virtually everything in the file upload except the emoji */
887
+ .paperclip-button .wrap {
888
+ border: none !important;
889
+ background: none !important;
890
+ padding: 0 !important;
891
+ margin: 0 !important;
892
+ height: 30px !important;
893
+ min-height: 0 !important;
894
+ }
895
+
896
+ .paperclip-button .file-preview {
897
+ display: none !important;
898
+ }
899
+
900
+ .paperclip-button label {
901
+ display: none !important;
902
  }
903
 
904
+ .paperclip-button .upload-button {
905
+ background: none !important;
906
+ border: none !important;
907
+ padding: 0 !important;
908
+ margin: 0 !important;
909
+ width: 25px !important;
910
+ height: 25px !important;
911
+ opacity: 0.6 !important;
912
  }
913
 
914
+ .paperclip-button .upload-button:hover {
915
+ opacity: 1 !important;
 
 
 
 
916
  }
917
 
918
+ /* Fix file upload icon to be paperclip only */
919
+ .paperclip-button .upload-button::before {
920
+ content: "πŸ“Ž" !important;
921
+ font-size: 18px !important;
922
+ position: absolute !important;
923
+ left: 3px !important;
924
+ top: 2px !important;
925
  }
926
 
927
+ .paperclip-button .upload-button .icon {
928
+ display: none !important;
929
+ }
930
+
931
+ .paperclip-button .upload-button .text-button {
932
+ display: none !important;
933
  }
934
 
935
  /* Description text styling */
 
940
  margin-bottom: 5px !important;
941
  }
942
  </style>
 
 
 
 
 
 
 
 
 
 
 
 
943
  """)
944
 
945
  return demo