Skip to content
Snippets Groups Projects
Commit b6691b33 authored by Suireen's avatar Suireen
Browse files

anpassung des README

parent 21ec4301
No related branches found
No related tags found
1 merge request!27Main
# Projekt CiS-Biochemie 2021-22 UI
# Projekt CiS-Biochemie 2021-22
# Benötigt:
- Dash
......@@ -8,31 +8,40 @@
# Starten des Programms:
Ausführen von citation_parser_ui.py und einfügen des entstandenen Liks in einen Browser.
Danach müsste sich die Benutzeroberfläche im Browser öffnen.
Um das Programm nutzen zu können muss zuerst \grqq citation\_parser\_ui.py\grqq \, ausgeführt werden und der entstandene Lik in einen Browser eingefügt werden. Danach öffnet sich die Benutzeroberfläche im Browser.
# Übersicht der Benutzeroberfläche:
- Show Info: Durch wiederholtes klicken kann das Fenster ein und aus geblendet werden.
- Input: Die Eingabe erfolgt in Form eines DOI ("Digital Object Identifier")
- Input: Die Eingabe erfolgt in Form eines DOI ("Digital Object Identifier") oder Hyperlink
- Drag and drop or click to select a file to upload: Mehrere DOI in einem txt-Dokument (genau ein DOI pro Zeile).
- Drag and drop or click to select a file to upload: Mehrere DOI oder Hyperlinks in einem .txt-Dokument (genau ein Link pro Zeile).
- Recursion: die beiden noch unbeschrifteten Felder rechts neben Input sind für die Rekursionstiefen in beide Richtungen
- Reference Depth: die Tiefe der Artikel welche von der Eingabe zitiert werden.
- Cited-by Depth: die Tiefe derjenigen welche de Eingegebenen Artikel Zitieren.
- Clear All: alle Eingaben werden gelöscht
- Clear Selected: alle markierten Eingaben werden gelöscht
- Generate Graph: generiert den zugehörigen Graphen (generiert momentan nur einen string)
- Generate Graph: generiert den zugehörigen Graphen
- Update Automatically: automatische Aktualisierung des Graphen bei jeder neuen Eingabe
- Smart Input: direkte Überprüfung der Eingabe auf Richtigkeit zudem wird nicht mehr der DOI angezeigt sondern:
- Smart Input: direkte Überprüfung der Eingabe auf Richtigkeit zudem wird nicht mehr der DOI oder Hyperlink angezeigt sondern:
Der Autor, Das Journal, Das Veröffentlichungsdatum. (muss vor Hinzufügen aktiviert worden sein)
## Autoren
- Isabelle Siebels
- Sebastian David
- Florian Jochens
- Julius Schenk
- Samuel Ockenden
- Alina Molkentin
- Donna Löding
- Malte Schokolowski
- Katja Ehlers
- Merle Stahl
......@@ -15,8 +15,8 @@ import plotly.express as px
import dash_bootstrap_components as dbc # pip install dash-bootstrap-components
app = dash.Dash(__name__, external_stylesheets=[dbc.themes.SPACELAB]) #SPACELAB https://bootswatch.com/default/ for more themes)
#SPACELAB is added as a style by https://bootswatch.com/default/
app = dash.Dash(__name__, external_stylesheets=[dbc.themes.SPACELAB])
# List of options when inputting data and generating the graph
additional_options = ['Update Automatically','Smart Input']
......@@ -72,22 +72,14 @@ html.Div(children=[
#Drag and drop or click to select a file to upload
["Drag and drop"]),
style={
<<<<<<< HEAD:citation_parser_main.py
"width": "400px",
=======
"width": "360px",
>>>>>>> main:citation_parser_ui.py
"height": "60px",
"lineHeight": "60px",
"borderWidth": "1px",
"borderStyle": "dashed",
"borderRadius": "5px",
"textAlign": "center",
<<<<<<< HEAD:citation_parser_main.py
"margin": "10px",
=======
"margin": "10px"
>>>>>>> main:citation_parser_ui.py
}),size="lg", color="primary", type="border", fullscreen=True,),
]),
......@@ -113,28 +105,17 @@ html.Div(children=[
dcc.Checklist(id='additional-options',
options=[{'label':k,'value':k} for k in additional_options],
value=[],labelStyle = dict(display= 'block'))
<<<<<<< HEAD:citation_parser_main.py
]),
=======
],style={'margin-top': "50px"}),
>>>>>>> main:citation_parser_ui.py
], style={'padding': 10, 'flex': 0.8}),
html.Div(children=[
# Layer 5: For the Graph and corresponding error messages
dbc.Spinner(html.Div([
<<<<<<< HEAD:citation_parser_main.py
html.Div(id='generate-graph-error',style={'color':'red'}),
html.Iframe(
src="assets/index.html",
style={"height": "650px", "width": "100%"},
=======
html.Div(id='generate-graph-error',style={'color':'red', 'position': "absolute", 'margin-top': "650px"}),
html.Iframe(
src="assets/index.html",
style={"height": "650px", "width": "1000px"},
>>>>>>> main:citation_parser_ui.py
),
]),size="lg", color="primary", type="border", fullscreen=True,),
], style={'padding': 10, 'flex': 1.2})
......@@ -184,7 +165,11 @@ def update_input_checklist(input_value,btn1,btn2,filecontents,all_inputs,
# if clear-all-button was pressed:
if 'clear-all-button' in changed_id:
os.remove('assets/json_text.json')
# the try/except is needed so that clear-all may be used even if there is no json-file
try:
os.remove('assets/json_text.json')
except:
pass
return list(),list(),'',''
# if clear-selected-button was pressed:
......@@ -263,7 +248,7 @@ def update_input_checklist(input_value,btn1,btn2,filecontents,all_inputs,
)
def toggle_collapse(n, is_open):
'''
This callback shows and hides the (first) info-box by, checking how# often
This callback shows and hides the (first) info-box by, checking how often
the button has been pressed. The text was loaded at the top.
:param n_clicks: number of times show-info has been clicked.
'type n_clicks: int
......@@ -301,22 +286,17 @@ def generate_output(n_clicks,all_inputs,forward_depth,backward_depth,additional_
changed_id = [p['prop_id'] for p in callback_context.triggered][0]
if n_clicks is None:
raise PreventUpdate
# This branch is entered when 'Generate Graph' is pushed or 'Update Automatically' is selected
# and the checklist or recursion depths are changed.
elif 'Update Automatically' in additional_options \
or 'start-button' in changed_id:
input_links = [x['value'] for x in all_inputs]
# Processing only returns a potential error message. The data for the graph is simply saved
# in the specified file.
errors = Processing(input_links,int(forward_depth),int(backward_depth),'assets/json_text.json')
if errors:
# This construct is needed because dash removes white spaces and newlines when concatinating
# strings with '\n'.join(...) or similar methods.
message = ['The following inputs are invalid and were not used:']
for error in errors:
message.append(html.Br())
message.append(error)
message = html.P(message)
#message = [html.P(error) for error in errors]
return message
if __name__ == '__main__':
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment