• דף הבית
    • אינדקס קישורים
    • פוסטים אחרונים
    • משתמשים
    • חיפוש בהגדרות המתקדמות
    • חיפוש גוגל בפורום
    • ניהול המערכת
    • ניהול המערכת - שרת private
    • הרשמה
    • התחברות

    שינוי פרטי הקלטה

    מתוזמן נעוץ נעול הועבר שאלות ועזרה הדדית
    7 פוסטים 2 כותבים 24 צפיות 2 עוקבים
    טוען פוסטים נוספים
    • מהישן לחדש
    • מהחדש לישן
    • הכי הרבה הצבעות
    תגובה
    • תגובה כנושא
    התחברו כדי לפרסם תגובה
    נושא זה נמחק. רק משתמשים עם הרשאות מתאימות יוכלו לצפות בו.
    • מ מנותק
      מארק
      נערך לאחרונה על ידי

      במערכת יש אפשרות לשמוע את פרטי ההקלטה, מי הקליט ומתי,
      האם ניתן לשנות את פרטי הקלטה, כלומר לדוגמא שיגיד 'ההודעה הוקלטה היום' במקום שיגיד 'הוקלטה אתמול' ?

      א תגובה 1 תגובה אחרונה תגובה ציטוט 0
      • א מחובר
        אA @מארק
        נערך לאחרונה על ידי

        @מארק
        בעיקרון זה נלקח מקובץ מסויים.
        כמדומני בשלוחת ההקלטות או בתקיית הלוגים.
        שם תוכל לשנות.

        מ תגובה 1 תגובה אחרונה תגובה ציטוט 0
        • מ מנותק
          מארק @אA
          נערך לאחרונה על ידי

          @אA א"כ זו השאלה איך אני משנה בלוג

          א תגובה 1 תגובה אחרונה תגובה ציטוט 0
          • א מחובר
            אA @מארק
            נערך לאחרונה על ידי

            @מארק
            אתה מוריד למחשב משנה ומעלה.
            אם תרצה אפתח לך קובץ פשוט להחלפה של שורות בקובץ הנ"ל.

            מ תגובה 1 תגובה אחרונה תגובה ציטוט 0
            • מ מנותק
              מארק @אA
              נערך לאחרונה על ידי

              @אA נו, בכבוד.

              א תגובה 1 תגובה אחרונה תגובה ציטוט 0
              • א מחובר
                אA @מארק
                נערך לאחרונה על ידי

                @מארק

                הקוד

                <!DOCTYPE html>
                <html lang="he" dir="rtl">
                <head>
                    <meta charset="UTF-8">
                    <meta name="viewport" content="width=device-width, initial-scale=1.0">
                    <title>עורך קבצים - גרסה מעודכנת</title>
                    <link href="https://fonts.googleapis.com/css2?family=Assistant:wght@300;400;600;700&display=swap" rel="stylesheet">
                    <style>
                        :root {
                            --primary: #4f46e5;
                            --primary-hover: #4338ca;
                            --bg: #f8fafc;
                            --card: #ffffff;
                            --text: #1e293b;
                            --border: #e2e8f0;
                            --success: #10b981;
                            --error: #ef4444;
                            --muted: #64748b;
                        }
                
                        body {
                            font-family: 'Assistant', sans-serif;
                            background-color: var(--bg);
                            color: var(--text);
                            margin: 0;
                            padding: 20px;
                            display: flex;
                            justify-content: center;
                        }
                
                        .app-container {
                            width: 100%;
                            max-width: 1000px;
                            background: var(--card);
                            padding: 30px;
                            border-radius: 16px;
                            box-shadow: 0 10px 30px rgba(0,0,0,0.08);
                            border: 1px solid var(--border);
                        }
                
                        header {
                            text-align: center;
                            margin-bottom: 25px;
                            padding-bottom: 15px;
                            border-bottom: 2px solid var(--bg);
                        }
                
                        h1 { margin: 0; color: var(--primary); font-size: 24px; }
                
                        .config-grid {
                            display: grid;
                            grid-template-columns: 1.2fr 1fr 1fr 0.6fr auto;
                            gap: 10px;
                            background: #f1f5f9;
                            padding: 20px;
                            border-radius: 12px;
                            align-items: flex-end;
                            margin-bottom: 20px;
                        }
                
                        .field-group { display: flex; flex-direction: column; }
                        label { font-weight: 700; margin-bottom: 6px; font-size: 13px; color: #475569; }
                
                        .input-style {
                            padding: 10px;
                            border: 1px solid var(--border);
                            border-radius: 6px;
                            font-size: 14px;
                            outline: none;
                            background: white;
                            box-sizing: border-box;
                            height: 40px;
                        }
                
                        .path-wrapper {
                            display: flex;
                            align-items: center;
                            background: white;
                            border: 1px solid var(--border);
                            border-radius: 6px;
                            overflow: hidden;
                            height: 40px;
                        }
                
                        .prefix {
                            background: #e2e8f0;
                            padding: 0 10px;
                            font-family: monospace;
                            font-weight: bold;
                            font-size: 13px;
                            height: 100%;
                            display: flex;
                            align-items: center;
                        }
                
                        #folderPath { border: none; flex: 1; min-width: 0; }
                
                        .editor-container { margin-top: 20px; }
                        
                        /* שינוי לצבע לבן ולא בולט */
                        textarea {
                            width: 100%;
                            height: 450px;
                            padding: 15px;
                            border-radius: 8px;
                            background: #ffffff; /* רקע לבן */
                            color: #334155; /* טקסט כהה ונעים לעין */
                            font-family: 'Consolas', 'Monaco', monospace;
                            font-size: 14px;
                            resize: vertical;
                            box-sizing: border-box;
                            line-height: 1.5;
                            border: 1px solid var(--border); /* גבול עדין */
                            box-shadow: inset 0 1px 3px rgba(0,0,0,0.02);
                        }
                
                        textarea:focus {
                            outline: none;
                            border-color: var(--primary);
                            box-shadow: 0 0 0 3px rgba(79, 70, 229, 0.1);
                        }
                
                        #status {
                            padding: 12px;
                            border-radius: 8px;
                            margin-bottom: 15px;
                            text-align: center;
                            font-weight: 600;
                            display: none;
                            font-size: 14px;
                        }
                
                        .btn {
                            padding: 0 20px;
                            border-radius: 6px;
                            border: none;
                            font-weight: 700;
                            cursor: pointer;
                            transition: 0.2s;
                            height: 40px;
                            display: flex;
                            align-items: center;
                            justify-content: center;
                        }
                
                        .btn-load { background: var(--primary); color: white; }
                        .btn-save { background: var(--success); color: white; width: 100%; margin-top: 15px; font-size: 16px; height: 50px; }
                        .btn:hover { opacity: 0.9; transform: translateY(-1px); }
                
                        .status-loading { display: block !important; background: #e0f2fe; color: #0369a1; }
                        .status-success { display: block !important; background: #dcfce7; color: #166534; }
                        .status-error { display: block !important; background: #fee2e2; color: #991b1b; }
                    </style>
                </head>
                <body>
                
                <div class="app-container">
                    <header>
                        <h1>עורך הקבצים המקצועי</h1>
                    </header>
                
                    <div id="status"></div>
                
                    <div class="config-grid">
                        <div class="field-group">
                            <label>טוקן גישה</label>
                            <input type="password" id="token" class="input-style" placeholder="הזן טוקן...">
                        </div>
                
                        <div class="field-group">
                            <label>נתיב שלוחה</label>
                            <div class="path-wrapper">
                                <span class="prefix">ivr2:</span>
                                <input type="text" id="folderPath" class="input-style" placeholder="למשל: 1/5">
                            </div>
                        </div>
                
                        <div class="field-group">
                            <label>שם הקובץ</label>
                            <input type="text" id="fileName" class="input-style" placeholder="למשל: ext">
                        </div>
                
                        <div class="field-group">
                            <label>סיומת</label>
                            <select id="extension" class="input-style">
                                <option value="ini">.ini</option>
                                <option value="tts">.tts</option>
                                <option value="ymrg">.ymrg</option>
                            </select>
                        </div>
                
                        <button class="btn btn-load" onclick="loadFile()">טען קובץ</button>
                    </div>
                
                    <div class="editor-container">
                        <label style="font-weight: bold; display: block; margin-bottom: 8px;">תוכן הקובץ:</label>
                        <textarea id="fileContent" spellcheck="false" placeholder="כאן יופיע תוכן הקובץ..."></textarea>
                    </div>
                
                    <button class="btn btn-save" onclick="saveFile()">שמור שינויים בשרת</button>
                </div>
                
                <script>
                    const baseUrl = 'https://www.call2all.co.il/ym/api/';
                
                    function getFullInternalPath() {
                        const folder = document.getElementById('folderPath').value.trim();
                        const name = document.getElementById('fileName').value.trim();
                        const ext = document.getElementById('extension').value;
                        
                        if (!folder || !name) return '';
                        
                        const cleanFolder = folder.endsWith('/') ? folder : folder + '/';
                        return `ivr2:${cleanFolder}${name}.${ext}`;
                    }
                
                    function updateStatus(msg, type) {
                        const s = document.getElementById('status');
                        s.innerText = msg;
                        s.className = 'status-' + type;
                    }
                
                    async function loadFile() {
                        const token = document.getElementById('token').value;
                        const fullPath = getFullInternalPath();
                
                        if (!token || !fullPath) {
                            updateStatus('נא למלא טוקן, נתיב ושם קובץ', 'error');
                            return;
                        }
                
                        updateStatus('מושך נתונים...', 'loading');
                
                        try {
                            const response = await fetch(`${baseUrl}DownloadFile?token=${token}&path=${fullPath}`);
                            if (response.ok) {
                                const text = await response.text();
                                document.getElementById('fileContent').value = text;
                                updateStatus('הקובץ נטען בהצלחה!', 'success');
                            } else {
                                updateStatus('הקובץ לא נמצא. בדוק את הנתיב.', 'error');
                            }
                        } catch (e) {
                            updateStatus('שגיאת תקשורת בטעינה', 'error');
                        }
                    }
                
                    async function saveFile() {
                        const token = document.getElementById('token').value;
                        const fullPath = getFullInternalPath();
                        const content = document.getElementById('fileContent').value;
                
                        if (!token || !fullPath) {
                            updateStatus('מידע חסר לשמירה', 'error');
                            return;
                        }
                
                        updateStatus('שומר שינויים...', 'loading');
                
                        const formData = new FormData();
                        formData.append('token', token);
                        formData.append('path', fullPath);
                        const blob = new Blob([content], { type: 'text/plain' });
                        formData.append('file', blob, 'file.txt');
                
                        try {
                            const res = await fetch(`${baseUrl}UploadFile`, { method: 'POST', body: formData });
                            const data = await res.json();
                
                            if (data.responseStatus === "OK") {
                                updateStatus('הקובץ עודכן בהצלחה!', 'success');
                            } else {
                                updateStatus('שגיאה: ' + (data.message || 'העלאה נכשלה'), 'error');
                            }
                        } catch (e) {
                            updateStatus('שגיאת תקשורת בשמירה', 'error');
                        }
                    }
                </script>
                
                </body>
                </html>
                
                תגובה 1 תגובה אחרונה תגובה ציטוט 0
                • א מחובר
                  אA
                  נערך לאחרונה על ידי

                  סתם מעניין לדעת שגימיני לומד לאט לאט איך לעבוד עם הקודים.
                  עכשי כתבתי קוד והוא הביא לי את הקודים הנצרכים מימות לבד. (רק צריך לעקוב שהוא כותב אותו בשלימות)

                  תגובה 1 תגובה אחרונה תגובה ציטוט 0
                  • פוסט ראשון
                    פוסט אחרון