회의록: 마크다운 편집 툴바에 회의록 클립보드 복사 버튼 추가
Made-with: Cursor
This commit is contained in:
@@ -2808,6 +2808,7 @@ body.ai-explore-dev-guest .search-input:disabled {
|
||||
flex-shrink: 0;
|
||||
}
|
||||
.mm-minutes-edit,
|
||||
.mm-minutes-copy,
|
||||
.mm-minutes-cancel {
|
||||
font-size: 13px;
|
||||
font-weight: 600;
|
||||
|
||||
@@ -189,6 +189,7 @@
|
||||
<button type="button" class="btn-ghost mm-minutes-edit" id="mmMinutesEdit">마크다운 편집</button>
|
||||
</div>
|
||||
<div class="mm-minutes-actions" id="mmMinutesActionsEdit" role="toolbar" aria-label="회의록 편집" hidden>
|
||||
<button type="button" class="btn-ghost mm-minutes-copy" id="mmMinutesCopy">복사</button>
|
||||
<button type="button" class="top-action mm-minutes-apply" id="mmMinutesApply">저장</button>
|
||||
<button type="button" class="btn-ghost mm-minutes-cancel" id="mmMinutesCancel">취소</button>
|
||||
</div>
|
||||
@@ -235,6 +236,7 @@
|
||||
var minutesActionsView = document.getElementById('mmMinutesActionsView');
|
||||
var minutesActionsEdit = document.getElementById('mmMinutesActionsEdit');
|
||||
var minutesEditBtn = document.getElementById('mmMinutesEdit');
|
||||
var minutesCopyBtn = document.getElementById('mmMinutesCopy');
|
||||
var minutesApplyBtn = document.getElementById('mmMinutesApply');
|
||||
var minutesCancelBtn = document.getElementById('mmMinutesCancel');
|
||||
/** 편집 모드 진입 시점의 회의록 원문(취소 시 복원) */
|
||||
@@ -343,6 +345,48 @@
|
||||
} catch (e) {}
|
||||
}
|
||||
}
|
||||
function copyTextToClipboard(text, done) {
|
||||
var t = String(text || '');
|
||||
if (navigator.clipboard && navigator.clipboard.writeText) {
|
||||
navigator.clipboard.writeText(t).then(done).catch(function () {
|
||||
legacyCopyTextToClipboard(t, done);
|
||||
});
|
||||
return;
|
||||
}
|
||||
legacyCopyTextToClipboard(t, done);
|
||||
}
|
||||
function legacyCopyTextToClipboard(text, done) {
|
||||
var ta = document.createElement('textarea');
|
||||
ta.value = text;
|
||||
ta.setAttribute('readonly', '');
|
||||
ta.style.position = 'fixed';
|
||||
ta.style.left = '-9999px';
|
||||
document.body.appendChild(ta);
|
||||
ta.select();
|
||||
try {
|
||||
document.execCommand('copy');
|
||||
} catch (e) {}
|
||||
document.body.removeChild(ta);
|
||||
if (typeof done === 'function') done();
|
||||
}
|
||||
if (minutesCopyBtn) {
|
||||
minutesCopyBtn.addEventListener('click', function () {
|
||||
if (!resultBody) return;
|
||||
var md = String(resultBody.value || '');
|
||||
if (!md.trim()) {
|
||||
alert('복사할 회의록 내용이 없습니다.');
|
||||
return;
|
||||
}
|
||||
var btn = minutesCopyBtn;
|
||||
var prev = btn.textContent;
|
||||
copyTextToClipboard(md, function () {
|
||||
btn.textContent = '복사됨';
|
||||
window.setTimeout(function () {
|
||||
btn.textContent = prev;
|
||||
}, 1600);
|
||||
});
|
||||
});
|
||||
}
|
||||
if (minutesEditBtn) {
|
||||
minutesEditBtn.addEventListener('click', function () {
|
||||
if (!resultBody) return;
|
||||
@@ -392,6 +436,7 @@
|
||||
if (resultBody) resultBody.disabled = !!on;
|
||||
if (transcriptBody) transcriptBody.disabled = !!on;
|
||||
if (minutesEditBtn) minutesEditBtn.disabled = !!on;
|
||||
if (minutesCopyBtn) minutesCopyBtn.disabled = !!on;
|
||||
if (minutesApplyBtn) minutesApplyBtn.disabled = !!on;
|
||||
if (minutesCancelBtn) minutesCancelBtn.disabled = !!on;
|
||||
if (on && resultBody && minutesRenderedEl) {
|
||||
|
||||
Reference in New Issue
Block a user