MediaWiki:Common.js: Perbedaan antara revisi

Tidak ada ringkasan suntingan
Tanda: Suntingan perangkat seluler Suntingan peramban seluler
Tidak ada ringkasan suntingan
Tanda: Suntingan perangkat seluler Suntingan peramban seluler
Baris 179: Baris 179:
         function showBoxNotif(title, msg, type) {
         function showBoxNotif(title, msg, type) {
             $('.mip-box-notif').remove();
             $('.mip-box-notif').remove();
             var theme = type === 'success' ? {bg:'#e6fffa', border:'#38b2ac', text:'#234e52', icon:''} :  
             var theme = type === 'success' ? {bg:'#e6fffa', border:'#38b2ac', text:'#234e52', icon:''} :  
                         {bg:'#fff5f5', border:'#f56565', text:'#742a2a', icon:'🚫'};
                         {bg:'#fff5f5', border:'#f56565', text:'#742a2a', icon:''};
              
              
             // Logika CSS Responsif untuk posisi
             // Logika CSS Responsif untuk posisi
Baris 205: Baris 205:
             '<div style="display:flex; align-items:center; gap:10px; margin-bottom:8px;">' +
             '<div style="display:flex; align-items:center; gap:10px; margin-bottom:8px;">' +
             '<span style="background:#6a5acd; color:white; padding:3px 10px; border-radius:4px; font-size:11px; font-weight:bold; text-transform:uppercase; letter-spacing:0.5px;">Basis Data Terstruktur</span>' +
             '<span style="background:#6a5acd; color:white; padding:3px 10px; border-radius:4px; font-size:11px; font-weight:bold; text-transform:uppercase; letter-spacing:0.5px;">Basis Data Terstruktur</span>' +
             '<strong style="color:#111; font-size:16px;">Mippedia Data Project</strong></div>' +
             '<strong style="color:#111; font-size:16px;"></div>' +
             '<p style="margin:0; font-size:13px; color:#444; line-height:1.6;">' +
             '<p style="margin:0; font-size:13px; color:#444; line-height:1.6;">' +
             'Selamat datang di repositori pusat <strong>Mippedia Data</strong>. Halaman ini menyimpan metadata entitas yang disinkronisasi secara otomatis lintas ekosistem. ' +
             'Halaman ini adalah metadata entitas yang disinkronisasi secara otomatis lintas ekosistem. ' +
             'Informasi di bawah ini bersifat teknis dan digunakan sebagai referensi data terbuka bagi pengembang dan komunitas Mippedia di seluruh dunia.' +
             'Informasi di bawah ini bersifat teknis dan digunakan sebagai referensi data terbuka bagi pengembang dan komunitas Mippedia di seluruh dunia.' +
             '</p></div>';
             '</p></div>';
Baris 219: Baris 219:
             '<div id="mip-editor" style="display:none; margin-top:20px; border-top:2px solid #f7fafc; padding-top:20px;">' +
             '<div id="mip-editor" style="display:none; margin-top:20px; border-top:2px solid #f7fafc; padding-top:20px;">' +
                 Object.keys(projects).map(p => '<div style="margin-bottom:12px; display:flex; gap:10px;"><span style="width:75px; font-size:11px; font-weight:bold; background:#edf2f7; display:flex; align-items:center; justify-content:center; border-radius:8px; color:#4a5568;">'+projects[p].name+'</span><input type="text" id="in-'+p+'" placeholder="Judul artikel di '+projects[p].name+'..." style="flex:1; padding:10px; font-size:13px; border:1.5px solid #e2e8f0; border-radius:10px; outline:none; transition:0.2s;" onfocus="this.style.borderColor=\'#6a5acd\'"></div>').join('') +
                 Object.keys(projects).map(p => '<div style="margin-bottom:12px; display:flex; gap:10px;"><span style="width:75px; font-size:11px; font-weight:bold; background:#edf2f7; display:flex; align-items:center; justify-content:center; border-radius:8px; color:#4a5568;">'+projects[p].name+'</span><input type="text" id="in-'+p+'" placeholder="Judul artikel di '+projects[p].name+'..." style="flex:1; padding:10px; font-size:13px; border:1.5px solid #e2e8f0; border-radius:10px; outline:none; transition:0.2s;" onfocus="this.style.borderColor=\'#6a5acd\'"></div>').join('') +
                 '<button id="mip-save" style="width:100%; padding:14px; background:#6a5acd; color:white; border:none; border-radius:12px; font-size:14px; font-weight:bold; cursor:pointer; box-shadow:0 4px 12px rgba(106,90,205,0.3); transition:0.3s;">Simpan & Sinkronkan Data</button>' +
                 '<button id="mip-save" style="width:100%; padding:14px; background:#6a5acd; color:white; border:none; border-radius:12px; font-size:14px; font-weight:bold; cursor:pointer; box-shadow:0 4px 12px rgba(106,90,205,0.3); transition:0.3s;">Terbitkan</button>' +
             '</div></div>';
             '</div></div>';


Baris 227: Baris 227:
             '<p style="margin:0 0 10px; font-size:13px; color:#4a5568; line-height:1.6;">' +
             '<p style="margin:0 0 10px; font-size:13px; color:#4a5568; line-height:1.6;">' +
             'Seluruh data terstruktur yang tersaji dalam repositori ini merupakan milik publik dan tersedia di bawah lisensi resmi ' +
             'Seluruh data terstruktur yang tersaji dalam repositori ini merupakan milik publik dan tersedia di bawah lisensi resmi ' +
             '<a href="https://creativecommons.org/licenses/by-sa/4.0/" target="_blank" style="color:#6a5acd; text-decoration:none; font-weight:700;">Creative Commons Attribution-ShareAlike 4.0 International (CC BY-SA 4.0)</a>.' +
             '<a href="https://creativecommons.org/licenses/by-sa/4.0/" target="_blank" style="color:#6a5acd; text-decoration:none; font-weight:700;">Creative Commons Attribution-ShareAlike 4.0 International</a>.' +
             '</p>' +
             '</p>' +
             '<p style="margin:0; font-size:12px; color:#a0aec0;">Akses API dan penggunaan data secara massal wajib mencantumkan atribusi kepada <strong>Mippedia Community</strong> selaku pengelola proyek.</p></div>';
             '<p style="margin:0; font-size:12px; color:#a0aec0;">Akses API dan penggunaan data secara massal wajib mencantumkan atribusi kepada <strong>Mippedia Community</strong> selaku pengelola proyek.</p></div>';
Baris 256: Baris 256:
             // CEK IZIN: Tolak user biasa
             // CEK IZIN: Tolak user biasa
             if (!isAdmin) {
             if (!isAdmin) {
                 showBoxNotif('Izin Ditolak', 'Halaman ini dilindungi. Hanya <b>Pengurus (Sysop)</b> atau <b>Admin Antarmuka</b> yang memiliki otoritas untuk memodifikasi metadata ekosistem secara langsung.', 'error');
                 showBoxNotif('Suntingan anda tidak di terbitkan', 'Halaman ini dilindungi. Hanya <b>Pengurus</b> yang memiliki otoritas untuk memodifikasi metadata ekosistem secara langsung.', 'error');
                 return;
                 return;
             }
             }
Baris 276: Baris 276:
             $.when.apply($, promises).then(function() {
             $.when.apply($, promises).then(function() {
                 if (invalid.length > 0) {
                 if (invalid.length > 0) {
                     showBoxNotif('Verifikasi Gagal', 'Artikel dengan judul tersebut tidak ditemukan di basis data Mippedia cabang: ' + invalid.join(', ') + '. Periksa kembali ejaan dan kapitalisasi.', 'error');
                     showBoxNotif('Suntingan anda tidak di terbitkan', 'Artikel dengan judul tersebut tidak ditemukan di basis data Mippedia cabang: ' + invalid.join(', ') + '. Periksa kembali ejaan dan kapitalisasi.', 'error');
                     $btn.text('Simpan & Sinkronkan Data').prop('disabled', false); return;
                     $btn.text('Terbitkan').prop('disabled', false); return;
                 }
                 }
                  
                  
Baris 286: Baris 286:
                     api.postWithEditToken({ action: 'edit', title: dataPage, text: JSON.stringify(full, null, 2), summary: 'Sync Metadata: ' + pageTitle })
                     api.postWithEditToken({ action: 'edit', title: dataPage, text: JSON.stringify(full, null, 2), summary: 'Sync Metadata: ' + pageTitle })
                     .done(function() {
                     .done(function() {
                         showBoxNotif('Data Tersimpan!', 'Metadata entitas berhasil disinkronisasi ke seluruh jaringan ekosistem Mippedia.', 'success');
                         showBoxNotif('Suntingan anda berhasil di terbitkan!', 'Metadata entitas berhasil disinkronisasi ke seluruh jaringan ekosistem Mippedia.', 'success');
                         setTimeout(function(){ location.reload(); }, 1500);
                         setTimeout(function(){ location.reload(); }, 1500);
                     }).fail(function(c) {
                     }).fail(function(c) {