seawolf2357 commited on
Commit
6741d51
·
verified ·
1 Parent(s): 1fff333

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +39 -4
app.py CHANGED
@@ -490,6 +490,10 @@ def load_session_history(selected_session=None):
490
  margin-bottom: 8px;
491
  font-size: 16px;
492
  }
 
 
 
 
493
  .card-prompt {
494
  font-size: 0.9em;
495
  color: #666;
@@ -498,26 +502,59 @@ def load_session_history(selected_session=None):
498
  -webkit-box-orient: vertical;
499
  overflow: hidden;
500
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
501
  </style>
502
  <div class="prompt-grid">
503
  """
504
 
505
  for item in json_data:
506
  name = html.escape(item.get('name', ''))
507
- image_url = item.get('image_url', '') # 이미 base64 인코딩된 이미지 URL
508
  prompt = html.escape(item.get('prompt', ''))
509
 
510
  html_content += f"""
511
  <div class="prompt-card" data-prompt="{prompt}" onclick="handleCardClick(this)">
512
  <img src="{image_url}" class="card-image" alt="{name}">
513
  <div class="card-name">{name}</div>
514
- <div class="card-prompt">{prompt}</div>
 
 
 
 
 
515
  </div>
516
  """
517
 
518
  html_content += """
519
  </div>
520
  <script>
 
 
 
 
 
 
 
 
 
 
521
  function handleCardClick(card) {
522
  console.log('Card clicked');
523
  const prompt = card.getAttribute('data-prompt');
@@ -526,14 +563,12 @@ def load_session_history(selected_session=None):
526
  console.log('Setting prompt:', prompt);
527
  textarea.value = prompt;
528
 
529
- // Send 버튼 클릭
530
  const sendButton = document.querySelector('button:contains("Send")');
531
  if (sendButton) {
532
  console.log('Clicking Send button');
533
  sendButton.click();
534
  }
535
 
536
- // 드로어 닫기
537
  const drawer = document.querySelector('.session-drawer');
538
  if (drawer) {
539
  console.log('Closing drawer');
 
490
  margin-bottom: 8px;
491
  font-size: 16px;
492
  }
493
+ .card-prompt-container {
494
+ position: relative;
495
+ padding-right: 60px;
496
+ }
497
  .card-prompt {
498
  font-size: 0.9em;
499
  color: #666;
 
502
  -webkit-box-orient: vertical;
503
  overflow: hidden;
504
  }
505
+ .copy-btn {
506
+ position: absolute;
507
+ right: 0;
508
+ top: 0;
509
+ padding: 4px 8px;
510
+ background: #f0f0f0;
511
+ border: 1px solid #ddd;
512
+ border-radius: 4px;
513
+ cursor: pointer;
514
+ font-size: 0.9em;
515
+ transition: all 0.2s ease;
516
+ }
517
+ .copy-btn:hover {
518
+ background: #e0e0e0;
519
+ }
520
+ .copy-btn:active {
521
+ background: #d0d0d0;
522
+ }
523
  </style>
524
  <div class="prompt-grid">
525
  """
526
 
527
  for item in json_data:
528
  name = html.escape(item.get('name', ''))
529
+ image_url = item.get('image_url', '')
530
  prompt = html.escape(item.get('prompt', ''))
531
 
532
  html_content += f"""
533
  <div class="prompt-card" data-prompt="{prompt}" onclick="handleCardClick(this)">
534
  <img src="{image_url}" class="card-image" alt="{name}">
535
  <div class="card-name">{name}</div>
536
+ <div class="card-prompt-container">
537
+ <div class="card-prompt">{prompt}</div>
538
+ <button class="copy-btn" onclick="copyPrompt(this, `{prompt}`)" title="프롬프트 복사">
539
+ 📋 복사
540
+ </button>
541
+ </div>
542
  </div>
543
  """
544
 
545
  html_content += """
546
  </div>
547
  <script>
548
+ function copyPrompt(btn, prompt) {
549
+ navigator.clipboard.writeText(prompt).then(() => {
550
+ btn.textContent = '✓ 복사됨';
551
+ setTimeout(() => {
552
+ btn.textContent = '📋 복사';
553
+ }, 2000);
554
+ });
555
+ event.stopPropagation();
556
+ }
557
+
558
  function handleCardClick(card) {
559
  console.log('Card clicked');
560
  const prompt = card.getAttribute('data-prompt');
 
563
  console.log('Setting prompt:', prompt);
564
  textarea.value = prompt;
565
 
 
566
  const sendButton = document.querySelector('button:contains("Send")');
567
  if (sendButton) {
568
  console.log('Clicking Send button');
569
  sendButton.click();
570
  }
571
 
 
572
  const drawer = document.querySelector('.session-drawer');
573
  if (drawer) {
574
  console.log('Closing drawer');