/**
* @fileoverview Content Rotation Post Creator & Modal Editor Controller
* @module controllers/rotation-creator-controller
* @description وحدة التحكم في إنشاء وتعديل منشورات مكتبة التدوير، إدارة المرفقات، وربط رسائل المتابعة التلقائية.
*/
(global => {
'use strict';
const state = global.FritreeRotationState;
/**
* بناء نافذة إضافة منشور جديد لمكتبة التدوير بالـ DOM
*/
const appendAddModalLayout = () => {
let modal = document.getElementById('s74nhbmzs5');
if (modal) return;
modal = document.createElement('div');
modal.className = 'cpzxome5dd';
modal.id = 's74nhbmzs5';
modal.style.cssText = 'position: fixed; top: 0; left: 0; width: 100%; height: 100%; backdrop-filter: blur(8px); display: none; align-items: center; justify-content: center; z-index: var(--z-modal-backdrop); background-color: rgba(15, 23, 42, 0.65); direction: rtl; text-align: right; box-sizing: border-box;';
modal.innerHTML = `
إضافة منشور جديد للمكتبة وتجهيزه للتدوير
محتوى ونص المنشور
محرك فحص الـ Spintax
اكتب نصك واستخدم الأقواس {} وافحص جودة التوليد والتمويه...
النص بعد التمويه وحقن البيانات الحقيقية:
يتم تطبيق الحروف المتجانسة والفواصل الصفرية لحماية منشورك.
المتغيرات:
إعدادات الفلاتر ومواعيد النشر
إعدادات الروابط المضمنة:
إرفاق صور أو فيديوهات للمنشور:
اسحب وأفلت الصور والفيديوهات هنا أو اضغط للاختيار من جهازك...
`;
document.body.appendChild(modal);
document.getElementById('anctu5etze').onclick = () => {
modal.style.display = 'none';
};
const submitBtn = document.getElementById('fpvai7vrns');
if (submitBtn) submitBtn.onclick = handleAddNewRotationPost;
};
/**
* بناء نافذة تعديل منشور محفوظ بالـ DOM
*/
const appendEditModalLayout = () => {
let modal = document.getElementById('a8jzwb130u');
if (modal) return;
modal = document.createElement('div');
modal.className = 'cpzxome5dd';
modal.id = 'a8jzwb130u';
modal.style.cssText = 'position: fixed; top: 0; left: 0; width: 100%; height: 100%; backdrop-filter: blur(8px); display: none; align-items: center; justify-content: center; z-index: var(--z-modal-backdrop); background-color: rgba(15, 23, 42, 0.65); direction: rtl; text-align: right; box-sizing: border-box;';
modal.innerHTML = `
تعديل المنشور وإعدادات التدوير
محتوى ونص المنشور
محرك فحص الـ Spintax
النص بعد التمويه وحقن البيانات الحقيقية:
المتغيرات:
إعدادات الفلاتر ومواعيد النشر
إعدادات الروابط المضمنة:
`;
document.body.appendChild(modal);
document.getElementById('hvsir9fpzq').onclick = () => {
modal.style.display = 'none';
};
const saveEditedBtn = document.getElementById('hlec9j3gwy');
if (saveEditedBtn) saveEditedBtn.onclick = saveEditedPreviousPost;
};
/**
* معالجة رفع وحفظ صور المنشور الجديد
*/
const handleAddPrevPostFiles = (files) => {
for (let i = 0; i < files.length; i++) {
const file = files[i];
if (file.size > 25 * 1024 * 1024) continue;
if (!file.type.startsWith('image/')) continue;
const reader = new FileReader();
reader.onload = async () => {
let compressedBlob = file;
let thumbBlob = file;
if (global.FritreeImageCompressor) {
compressedBlob = await global.FritreeImageCompressor.compressImage(file);
thumbBlob = await global.FritreeImageCompressor.generateThumbnail(compressedBlob);
}
const binaryHash = 'rot_media_add_' + Date.now() + "_" + Math.random().toString(36).substr(2,4);
if (global.FritreeStorage) {
await global.FritreeStorage.set(`media_blob_${binaryHash}`, compressedBlob);
await global.FritreeStorage.set(`media_thumb_${binaryHash}`, thumbBlob);
}
state.addPrevPostMedia.push({
id: binaryHash,
type: "image/jpeg",
blob: compressedBlob,
thumbBlob: thumbBlob,
filename: file.name
});
renderAddPrevPostPreviews();
};
reader.readAsDataURL(file);
}
};
const renderAddPrevPostPreviews = () => {
const container = document.getElementById('utw9am60j7');
if (!container) return;
container.innerHTML = '';
for (let i = 0; i < state.addPrevPostMedia.length; i++) {
const media = state.addPrevPostMedia[i];
const box = document.createElement('div');
box.className = 'evr435qzb2';
box.style.cssText = 'width: 76px; height: 76px; border: 1px solid var(--border); border-radius: var(--radius-md); overflow: hidden; position: relative; display: inline-block;';
const el = document.createElement('img');
const previewUrl = URL.createObjectURL(media.thumbBlob || media.blob);
el.src = previewUrl;
box.dataset.objurl = previewUrl;
el.style.cssText = 'width: 100%; height: 100%; object-fit: cover;';
const closeBtn = document.createElement('button');
closeBtn.setAttribute('type', 'button');
closeBtn.style.cssText = 'position: absolute; top: 4px; left: 4px; background: rgba(239, 68, 68, 0.85); color: #fff; border: none; border-radius: 50%; width: 22px; height: 22px; font-size: 10px; cursor: pointer; display: flex; align-items: center; justify-content: center;';
closeBtn.innerHTML = ' ';
closeBtn.onclick = () => {
if (box.dataset.objurl) URL.revokeObjectURL(box.dataset.objurl);
if (global.FritreeStorage) {
global.FritreeStorage.remove(`media_blob_${media.id}`);
global.FritreeStorage.remove(`media_thumb_${media.id}`);
}
state.addPrevPostMedia.splice(i, 1);
renderAddPrevPostPreviews();
};
box.appendChild(el);
box.appendChild(closeBtn);
container.appendChild(box);
}
};
/**
* حفظ المنشور الجديد في مكتبة التدوير والتخزين المشفر
*/
const handleAddNewRotationPost = async () => {
const titleVal = (document.getElementById('wlunjizubf')?.value || '').trim();
const textVal = document.getElementById('tfurtfdsqf')?.value || '';
const statusVal = document.getElementById('gc2figac9w')?.value || 'active';
const keywordsVal = document.getElementById('tqyy6isz9h')?.value || '';
const phonesVal = document.getElementById('n49dyh07qe')?.value || '';
const noteVal = (document.getElementById('sdpu7v53bc')?.value || '').trim();
const categoryVal = document.getElementById('fk1p2nd322')?.value || '';
const altTextVal = document.getElementById('ttzd830v71')?.value || '';
const priorityVal = parseInt(document.getElementById('dpfsbbscb8')?.value, 10) || 50;
const entryDateVal = document.getElementById('nxkipeaxy3')?.value || '';
const expireDateVal = document.getElementById('zze2ahziau')?.value || '';
const clientNameVal = (document.getElementById('shwl4dswr3')?.value || '').trim();
const enableWaFollowUp = document.getElementById('zjibwdxt0e')?.checked || false;
const followUpMessage = document.getElementById('smpimntnov')?.value || '';
const followUpDate = document.getElementById('zzb32zuqfq')?.value || '';
const followupLinksMode = document.getElementById('p4ill70byo')?.value || 'all';
const followupLinksCount = parseInt(document.getElementById('qibeji3kih')?.value, 10) || 5;
const followupLinksOrder = document.getElementById('hgi4sk486r')?.value || 'ordered';
const followupRecurrenceMode = document.getElementById('x0tn0hlktk')?.value || 'none';
const followupRecurrenceDays = parseInt(document.getElementById('x4me28ma8a')?.value, 10) || 3;
if (!textVal && state.addPrevPostMedia.length === 0) {
alert('لا يمكن حفظ منشور فارغ تماماً!');
return;
}
let keywordsArray = keywordsVal.split(',').map(s => s.trim().toLowerCase()).filter(s => s);
let categoryArray = categoryVal.split(',').map(s => s.trim()).filter(s => s);
if (categoryArray.length === 0 && keywordsArray.length === 0 && textVal) {
if (global.FritreeSimilarityService && typeof global.FritreeSimilarityService.autoClassify === 'function') {
const classified = global.FritreeSimilarityService.autoClassify(textVal);
categoryArray = classified.categories;
keywordsArray = classified.keywords;
}
}
const phonesArray = phonesVal.split(',').map(s => s.trim().replace(/[^0-9+]/g, '')).filter(s => s);
const newPost = {
id: 'rot_' + Date.now() + '_' + Math.random().toString(36).substr(2, 4),
title: titleVal || (textVal ? textVal.substring(0, 30) + '...' : 'أرشيف تدوير محفوظ'),
text: textVal,
altText: altTextVal,
priority: priorityVal,
mediaReferences: state.addPrevPostMedia.map(m => ({ id: m.id, type: m.type, filename: m.filename })),
status: statusVal,
keywords: keywordsArray,
categories: categoryArray,
notes: noteVal,
enableWaFollowUp: enableWaFollowUp,
clientName: clientNameVal,
phoneNumbers: phonesArray,
followUpDate: followUpDate,
followUpMessage: followUpMessage,
followupLinksMode: followupLinksMode,
followupLinksCount: followupLinksCount,
followupLinksOrder: followupLinksOrder,
followupRecurrenceMode: followupRecurrenceMode,
followupRecurrenceDays: followupRecurrenceDays,
entryDate: entryDateVal || new Date().toISOString(),
expireDate: expireDateVal,
followUpSent: false,
date: new Date().toISOString()
};
if (!Array.isArray(state.previousPostsData)) {
state.previousPostsData = [];
}
state.previousPostsData.unshift(newPost);
if (global.FritreeRotationStore && typeof global.FritreeRotationStore.save === 'function') {
global.FritreeRotationStore.recalculateScores();
await global.FritreeRotationStore.save();
}
if (global.FritreeRotation && typeof global.FritreeRotation.renderPreviousPostsGrid === 'function') {
global.FritreeRotation.renderPreviousPostsGrid();
}
// تفريغ حقول الإدخال
document.getElementById('wlunjizubf').value = '';
document.getElementById('tfurtfdsqf').value = '';
document.getElementById('tqyy6isz9h').value = '';
document.getElementById('n49dyh07qe').value = '';
document.getElementById('sdpu7v53bc').value = '';
document.getElementById('fk1p2nd322').value = '';
document.getElementById('nxkipeaxy3').value = '';
document.getElementById('zze2ahziau').value = '';
document.getElementById('shwl4dswr3').value = '';
document.getElementById('zjibwdxt0e').checked = false;
document.getElementById('smpimntnov').value = '';
document.getElementById('zzb32zuqfq').value = '';
document.getElementById('ttzd830v71').value = '';
document.getElementById('dpfsbbscb8').value = '50';
state.addPrevPostMedia = [];
const previewsContainer = document.getElementById('utw9am60j7');
if (previewsContainer) previewsContainer.innerHTML = '';
const addModal = document.getElementById('s74nhbmzs5');
if (addModal) addModal.style.display = 'none';
if (typeof window.addLog === 'function') {
window.addLog(`تم حفظ وتخزين المنشور بنجاح: "${newPost.title}".`, 'success');
}
};
/**
* فتح نافذة إنشاء المنشور الجديد
* @param {string} presetText
*/
const openAddPrevPostModal = (presetText = '') => {
appendAddModalLayout();
if (presetText) {
const txtArea = document.getElementById('tfurtfdsqf');
if (txtArea) txtArea.value = presetText;
}
const modal = document.getElementById('s74nhbmzs5');
if (modal) modal.style.display = 'flex';
};
/**
* فتح نافذة تعديل المنشور
* @param {string} id
*/
const openEditPrevPostModal = async (id) => {
const post = state.previousPostsData.find(p => p.id === id);
if (!post) return;
appendEditModalLayout();
document.getElementById('f0e140ihx2').value = post.id;
document.getElementById('sf07blbqj5').value = post.title || '';
document.getElementById('y6sf67114z').value = post.text || '';
document.getElementById('texys3w2lv').value = post.status || 'active';
document.getElementById('n2qgtkpju3').value = post.keywords ? post.keywords.join(', ') : '';
document.getElementById('qu2fksgv9h').value = post.phoneNumbers ? post.phoneNumbers.join(', ') : '';
document.getElementById('fkrgoi078q').value = post.notes || '';
document.getElementById('xbks261mca').value = post.categories ? post.categories.join(', ') : '';
document.getElementById('nj5384jl5c').value = post.altText || '';
document.getElementById('d1w0s2kv3v').value = post.priority !== undefined ? post.priority : 50;
document.getElementById('hnits5ebb5').value = post.entryDate ? post.entryDate.slice(0, 16) : '';
document.getElementById('grp82kp5ee').value = post.expireDate ? post.expireDate.slice(0, 16) : '';
document.getElementById('swzbu11pzw').value = post.clientName || '';
document.getElementById('jgtj1u98h0').checked = !!post.enableWaFollowUp;
document.getElementById('q9xi99sflx').value = post.followUpMessage || '';
document.getElementById('tbruewdovo').value = post.followUpDate ? post.followUpDate.slice(0, 16) : '';
const editLinksMode = post.followupLinksMode || 'all';
document.getElementById('lsia7sxo1z').value = editLinksMode;
document.getElementById('q4ft603tog').value = post.followupLinksCount || 5;
document.getElementById('jmue92xc4j').value = post.followupLinksOrder || 'ordered';
const editLinksWrapper = document.getElementById('cje296b5w0');
if (editLinksWrapper) editLinksWrapper.style.display = (editLinksMode === 'limit') ? 'block' : 'none';
const editRecMode = post.followupRecurrenceMode || 'none';
document.getElementById('twsjw36541').value = editRecMode;
document.getElementById('s1f8knupy0').value = post.followupRecurrenceDays || 3;
const editRecWrapper = document.getElementById('tcc6p8xt6o');
if (editRecWrapper) editRecWrapper.style.display = (editRecMode === 'custom-days') ? 'block' : 'none';
state.editPrevPostMedia = [];
if (post.mediaReferences && global.FritreeStorage) {
for (let i = 0; i < post.mediaReferences.length; i++) {
const ref = post.mediaReferences[i];
const rawBlob = await global.FritreeStorage.get(`media_blob_${ref.id}`);
const thumbBlob = await global.FritreeStorage.get(`media_thumb_${ref.id}`);
state.editPrevPostMedia.push({
id: ref.id,
type: ref.type,
blob: rawBlob,
thumbBlob: thumbBlob,
filename: ref.filename
});
}
}
renderEditPrevPostPreviews();
const modal = document.getElementById('a8jzwb130u');
if (modal) modal.style.display = 'flex';
};
/**
* معالجة رفع صور المنشور قيد التعديل
*/
const handleEditPrevPostFiles = (files) => {
for (let i = 0; i < files.length; i++) {
const file = files[i];
if (file.size > 25 * 1024 * 1024) continue;
if (!file.type.startsWith('image/')) continue;
const reader = new FileReader();
reader.onload = async () => {
let compressedBlob = file;
let thumbBlob = file;
if (global.FritreeImageCompressor) {
compressedBlob = await global.FritreeImageCompressor.compressImage(file);
thumbBlob = await global.FritreeImageCompressor.generateThumbnail(compressedBlob);
}
const binaryHash = 'rot_media_edit_' + Date.now() + "_" + Math.random().toString(36).substr(2,4);
if (global.FritreeStorage) {
await global.FritreeStorage.set(`media_blob_${binaryHash}`, compressedBlob);
await global.FritreeStorage.set(`media_thumb_${binaryHash}`, thumbBlob);
}
state.editPrevPostMedia.push({
id: binaryHash,
type: "image/jpeg",
blob: compressedBlob,
thumbBlob: thumbBlob,
filename: file.name
});
renderEditPrevPostPreviews();
};
reader.readAsDataURL(file);
}
};
const renderEditPrevPostPreviews = () => {
const container = document.getElementById('rd6kwbqsvk');
if (!container) return;
container.innerHTML = '';
for (let i = 0; i < state.editPrevPostMedia.length; i++) {
const media = state.editPrevPostMedia[i];
const box = document.createElement('div');
box.className = 'evr435qzb2';
box.style.cssText = 'width: 76px; height: 76px; border: 1px solid var(--border); border-radius: var(--radius-md); overflow: hidden; position: relative; display: inline-block;';
const el = document.createElement('img');
if (media.thumbBlob || media.blob) {
const previewUrl = URL.createObjectURL(media.thumbBlob || media.blob);
el.src = previewUrl;
box.dataset.objurl = previewUrl;
} else {
el.src = 'icon.png';
}
el.style.cssText = 'width: 100%; height: 100%; object-fit: cover;';
const closeBtn = document.createElement('button');
closeBtn.setAttribute('type', 'button');
closeBtn.style.cssText = 'position: absolute; top: 4px; left: 4px; background: rgba(239, 68, 68, 0.85); color: #fff; border: none; border-radius: 50%; width: 22px; height: 22px; font-size: 10px; cursor: pointer; display: flex; align-items: center; justify-content: center;';
closeBtn.innerHTML = ' ';
closeBtn.onclick = () => {
if (box.dataset.objurl) URL.revokeObjectURL(box.dataset.objurl);
if (global.FritreeStorage) {
global.FritreeStorage.remove(`media_blob_${media.id}`);
global.FritreeStorage.remove(`media_thumb_${media.id}`);
}
state.editPrevPostMedia.splice(i, 1);
renderEditPrevPostPreviews();
};
box.appendChild(el);
box.appendChild(closeBtn);
container.appendChild(box);
}
};
/**
* حفظ المنشور بعد التعديل
*/
const saveEditedPreviousPost = async () => {
const id = document.getElementById('f0e140ihx2')?.value;
const post = state.previousPostsData.find(p => p.id === id);
if (!post) return;
const titleVal = (document.getElementById('sf07blbqj5')?.value || '').trim();
const textVal = document.getElementById('y6sf67114z')?.value || '';
const statusVal = document.getElementById('texys3w2lv')?.value || 'active';
const keywordsVal = document.getElementById('n2qgtkpju3')?.value || '';
const phonesVal = document.getElementById('qu2fksgv9h')?.value || '';
const noteVal = (document.getElementById('fkrgoi078q')?.value || '').trim();
const categoryVal = document.getElementById('xbks261mca')?.value || '';
const entryDateVal = document.getElementById('hnits5ebb5')?.value || '';
const expireDateVal = document.getElementById('grp82kp5ee')?.value || '';
const clientNameVal = (document.getElementById('swzbu11pzw')?.value || '').trim();
const enableWaFollowUp = document.getElementById('jgtj1u98h0')?.checked || false;
const followUpMessage = document.getElementById('q9xi99sflx')?.value || '';
const followUpDate = document.getElementById('tbruewdovo')?.value || '';
const followupLinksMode = document.getElementById('lsia7sxo1z')?.value || 'all';
const followupLinksCount = parseInt(document.getElementById('q4ft603tog')?.value, 10) || 5;
const followupLinksOrder = document.getElementById('jmue92xc4j')?.value || 'ordered';
const followupRecurrenceMode = document.getElementById('twsjw36541')?.value || 'none';
const followupRecurrenceDays = parseInt(document.getElementById('s1f8knupy0')?.value, 10) || 3;
const altTextVal = document.getElementById('nj5384jl5c')?.value || '';
const priorityVal = parseInt(document.getElementById('d1w0s2kv3v')?.value, 10) || 50;
if (!textVal && state.editPrevPostMedia.length === 0) {
alert('لا يمكن حفظ منشور فارغ تماماً!');
return;
}
post.title = titleVal || (textVal ? textVal.substring(0, 30) + '...' : 'أرشيف تدوير محفوظ');
post.text = textVal;
post.altText = altTextVal;
post.priority = priorityVal;
post.mediaReferences = state.editPrevPostMedia.map(m => ({ id: m.id, type: m.type, filename: m.filename }));
post.status = statusVal;
post.keywords = keywordsVal.split(',').map(s => s.trim().toLowerCase()).filter(s => s);
post.categories = categoryVal.split(',').map(s => s.trim()).filter(s => s);
post.notes = noteVal;
post.enableWaFollowUp = enableWaFollowUp;
post.clientName = clientNameVal;
post.phoneNumbers = phonesVal.split(',').map(s => s.trim().replace(/[^0-9+]/g, '')).filter(s => s);
post.followUpDate = followUpDate;
post.followUpMessage = followUpMessage;
post.followupLinksMode = followupLinksMode;
post.followupLinksCount = followupLinksCount;
post.followupLinksOrder = followupLinksOrder;
post.followupRecurrenceMode = followupRecurrenceMode;
post.followupRecurrenceDays = followupRecurrenceDays;
post.entryDate = entryDateVal || post.entryDate || new Date().toISOString();
post.expireDate = expireDateVal;
if (global.FritreeRotationStore && typeof global.FritreeRotationStore.save === 'function') {
global.FritreeRotationStore.recalculateScores();
await global.FritreeRotationStore.save();
}
if (global.FritreeRotation && typeof global.FritreeRotation.renderPreviousPostsGrid === 'function') {
global.FritreeRotation.renderPreviousPostsGrid();
}
const modal = document.getElementById('a8jzwb130u');
if (modal) modal.style.display = 'none';
if (typeof window.addLog === 'function') {
window.addLog(`تم تحديث وحفظ المنشور بنجاح: "${post.title}".`, 'success');
}
};
/**
* ربط أحداث المحرر والنوافذ
*/
const bindCreatorEventListeners = () => {
appendAddModalLayout();
appendEditModalLayout();
// 1. أزرار فحص جودة الـ Spintax ومعاينة التمويه في نافذة الإضافة
const btnCheckQualityAdd = document.getElementById('ukgv00a6ew');
const qualityResultAdd = document.getElementById('pvd3acinzt');
const btnPreviewStealthAdd = document.getElementById('q1oy8rpm26');
const previewBoxWrapperAdd = document.getElementById('w2d0q5j0yl');
const previewTextBoxAdd = document.getElementById('p1yahnikb8');
if (btnCheckQualityAdd && qualityResultAdd) {
btnCheckQualityAdd.onclick = () => {
const text = document.getElementById('tfurtfdsqf')?.value || '';
if (global.FritreeSimilarityService && typeof global.FritreeSimilarityService.analyzeSpintax === 'function') {
const res = global.FritreeSimilarityService.analyzeSpintax(text);
if (res.valid) {
qualityResultAdd.innerHTML = ` صياغة الأقواس سليمة! المتغيرات المحسوبة: ${res.variations.toLocaleString('en-US')} | الأمان: ${res.safetyPct}%`;
} else {
qualityResultAdd.innerHTML = ` ${res.errors || 'خطأ في صياغة الأقواس'}`;
}
}
};
}
if (btnPreviewStealthAdd && previewBoxWrapperAdd && previewTextBoxAdd) {
btnPreviewStealthAdd.onclick = async () => {
const text = document.getElementById('tfurtfdsqf')?.value || '';
if (!text) {
alert('اكتب نص المنشور أولاً لمعاينة التمويه!');
return;
}
if (previewBoxWrapperAdd.style.display === 'none') {
if (global.FritreeTextCompiler && typeof global.FritreeTextCompiler.compileAndObfuscate === 'function') {
const obfuscated = await global.FritreeTextCompiler.compileAndObfuscate(text, "جروب_التجربة");
previewTextBoxAdd.textContent = obfuscated;
previewBoxWrapperAdd.style.display = 'block';
}
} else {
previewBoxWrapperAdd.style.display = 'none';
}
};
}
// 2. زر معاينة التمويه في نافذة التعديل
const btnPreviewStealthEdit = document.getElementById('pcam8x7wdq');
const previewBoxWrapperEdit = document.getElementById('c2motxakmm');
const previewTextBoxEdit = document.getElementById('nmt96brzmq');
if (btnPreviewStealthEdit && previewBoxWrapperEdit && previewTextBoxEdit) {
btnPreviewStealthEdit.onclick = async () => {
const text = document.getElementById('y6sf67114z')?.value || '';
if (!text) {
alert('اكتب نص المنشور أولاً لمعاينة التمويه!');
return;
}
if (previewBoxWrapperEdit.style.display === 'none') {
if (global.FritreeTextCompiler && typeof global.FritreeTextCompiler.compileAndObfuscate === 'function') {
const obfuscated = await global.FritreeTextCompiler.compileAndObfuscate(text, "جروب_التجربة");
previewTextBoxEdit.textContent = obfuscated;
previewBoxWrapperEdit.style.display = 'block';
}
} else {
previewBoxWrapperEdit.style.display = 'none';
}
};
}
// 3. ربط أزرار إضافة المتغيرات
document.querySelectorAll('.ynnugi2j1w').forEach(btn => {
btn.onclick = (e) => {
const tag = e.currentTarget.getAttribute('data-var');
let targetTextarea = document.getElementById('tfurtfdsqf');
const editModal = document.getElementById('a8jzwb130u');
if (editModal && editModal.style.display === 'flex') {
targetTextarea = document.getElementById('y6sf67114z');
}
if (targetTextarea) {
const start = targetTextarea.selectionStart;
const end = targetTextarea.selectionEnd;
targetTextarea.value = targetTextarea.value.substring(0, start) + tag + targetTextarea.value.substring(end);
targetTextarea.focus();
targetTextarea.selectionEnd = start + tag.length;
}
};
});
// 4. ربط أزرار وسوم رسائل المتابعة
document.querySelectorAll('.nura0m8mnt, .x8g5p7tdh7').forEach(btn => {
btn.onclick = (e) => {
const tag = e.currentTarget.getAttribute('data-tag');
let targetTextarea = document.getElementById('smpimntnov');
const editModal = document.getElementById('a8jzwb130u');
if (editModal && editModal.style.display === 'flex') {
targetTextarea = document.getElementById('q9xi99sflx');
}
if (targetTextarea) {
const start = targetTextarea.selectionStart;
const end = targetTextarea.selectionEnd;
targetTextarea.value = targetTextarea.value.substring(0, start) + tag + targetTextarea.value.substring(end);
targetTextarea.focus();
targetTextarea.selectionEnd = start + tag.length;
}
};
});
// 5. ربط مناطق رفع الصور
const addDropzone = document.getElementById('tr3maazuat');
const addFileInput = document.getElementById('hrl56oubz6');
if (addDropzone && addFileInput) {
addDropzone.onclick = () => addFileInput.click();
addFileInput.onchange = (e) => { if (e.target.files.length > 0) handleAddPrevPostFiles(e.target.files); };
}
const editDropzone = document.getElementById('jzc6fmhhs8');
const editFileInput = document.getElementById('s0jxf1x6ev');
if (editDropzone && editFileInput) {
editDropzone.onclick = () => editFileInput.click();
editFileInput.onchange = (e) => { if (e.target.files.length > 0) handleEditPrevPostFiles(e.target.files); };
}
};
/**
* تهيئة وحدة تحكم إنشاء وتعديل المنشورات
*/
const initCreator = () => {
bindCreatorEventListeners();
return true;
};
global.FritreeRotationCreator = {
init: initCreator,
openAddModal: openAddPrevPostModal,
openEditModal: openEditPrevPostModal,
openEditGroupModal: (groupId = null, preselectedPostIds = []) => {
if (global.FritreeRotationGroups && typeof global.FritreeRotationGroups.openModal === 'function') {
global.FritreeRotationGroups.openModal(groupId, preselectedPostIds);
}
},
saveEditedPost: saveEditedPreviousPost
};
if (typeof document !== 'undefined') {
if (document.readyState === 'complete' || document.readyState === 'interactive') {
global.FritreeRotationCreator.init();
} else {
document.addEventListener('DOMContentLoaded', () => global.FritreeRotationCreator.init());
}
}
})(typeof globalThis !== 'undefined' ? globalThis : typeof window !== 'undefined' ? window : this);