bluenevus commited on
Commit
e4572ba
·
verified ·
1 Parent(s): e15ce8c

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +40 -12
app.py CHANGED
@@ -29,14 +29,17 @@ def get_links():
29
  c.execute("SELECT * FROM links")
30
  links = [dict(row) for row in c.fetchall()]
31
  conn.close()
 
32
  return links
33
 
34
  app.layout = dbc.Container([
 
35
  dbc.Modal([
36
  dbc.ModalHeader("Add New URL"),
37
  dbc.ModalBody([
38
  dbc.Input(id='new-url-name', placeholder="URL Name", className="mb-2"),
39
  dbc.Input(id='new-url-link', placeholder="URL", className="mb-2"),
 
40
  ]),
41
  dbc.ModalFooter(
42
  dbc.Button("Add", id="add-url-button", className="ml-auto")
@@ -65,23 +68,36 @@ def toggle_modal(n1, n2, is_open):
65
  return is_open
66
 
67
  @callback(
68
- Output('url-list', 'children'),
69
- Input('add-url-button', 'n_clicks'),
70
- State('new-url-name', 'value'),
71
- State('new-url-link', 'value')
 
 
 
72
  )
73
- def update_url_list(n_clicks, new_name, new_link):
74
  ctx = dash.callback_context
75
  if ctx.triggered_id == 'add-url-button' and new_name and new_link:
76
- conn = get_db_connection()
77
- c = conn.cursor()
78
- new_id = str(uuid.uuid4())
79
- c.execute("INSERT INTO links VALUES (?, ?, ?)", (new_id, new_name, new_link))
80
- conn.commit()
81
- conn.close()
 
 
 
 
 
 
 
 
 
 
82
 
83
  links = get_links()
84
- return [
85
  dbc.ListGroupItem([
86
  dbc.Button(
87
  link['name'],
@@ -98,6 +114,18 @@ def update_url_list(n_clicks, new_name, new_link):
98
  ], className="d-flex justify-content-between align-items-center")
99
  for link in links
100
  ]
 
 
 
 
 
 
 
 
 
 
 
 
101
 
102
  @callback(
103
  Output('content-iframe', 'src'),
 
29
  c.execute("SELECT * FROM links")
30
  links = [dict(row) for row in c.fetchall()]
31
  conn.close()
32
+ print(f"Retrieved links: {links}") # Debug print
33
  return links
34
 
35
  app.layout = dbc.Container([
36
+ dcc.Store(id='add-url-status', data=''),
37
  dbc.Modal([
38
  dbc.ModalHeader("Add New URL"),
39
  dbc.ModalBody([
40
  dbc.Input(id='new-url-name', placeholder="URL Name", className="mb-2"),
41
  dbc.Input(id='new-url-link', placeholder="URL", className="mb-2"),
42
+ html.Div(id='add-url-feedback')
43
  ]),
44
  dbc.ModalFooter(
45
  dbc.Button("Add", id="add-url-button", className="ml-auto")
 
68
  return is_open
69
 
70
  @callback(
71
+ [Output('url-list', 'children'),
72
+ Output('add-url-feedback', 'children'),
73
+ Output('add-url-status', 'data')],
74
+ [Input('add-url-button', 'n_clicks'),
75
+ Input('add-url-status', 'data')],
76
+ [State('new-url-name', 'value'),
77
+ State('new-url-link', 'value')]
78
  )
79
+ def update_url_list(n_clicks, status, new_name, new_link):
80
  ctx = dash.callback_context
81
  if ctx.triggered_id == 'add-url-button' and new_name and new_link:
82
+ try:
83
+ conn = get_db_connection()
84
+ c = conn.cursor()
85
+ new_id = str(uuid.uuid4())
86
+ c.execute("INSERT INTO links VALUES (?, ?, ?)", (new_id, new_name, new_link))
87
+ conn.commit()
88
+ conn.close()
89
+ feedback = html.Div("URL added successfully!", style={'color': 'green'})
90
+ status = 'added'
91
+ except Exception as e:
92
+ print(f"Error adding URL: {e}")
93
+ feedback = html.Div("Error adding URL. Please try again.", style={'color': 'red'})
94
+ status = 'error'
95
+ else:
96
+ feedback = None
97
+ status = ''
98
 
99
  links = get_links()
100
+ url_list = [
101
  dbc.ListGroupItem([
102
  dbc.Button(
103
  link['name'],
 
114
  ], className="d-flex justify-content-between align-items-center")
115
  for link in links
116
  ]
117
+
118
+ return url_list, feedback, status
119
+
120
+ @callback(
121
+ [Output('new-url-name', 'value'),
122
+ Output('new-url-link', 'value')],
123
+ Input('add-url-status', 'data')
124
+ )
125
+ def clear_inputs(status):
126
+ if status == 'added':
127
+ return '', ''
128
+ return dash.no_update, dash.no_update
129
 
130
  @callback(
131
  Output('content-iframe', 'src'),