/
home
/
altere25
/
.trash
/
wp-to-sanity-companion.1
/
/home/altere25/.trash/wp-to-sanity-companion.1
mkdir
upload
Name
Size
Mode
Actions
assets/
-
0755
rm
includes/
-
0755
rm
templates/
-
0755
rm
assets\css\admin.css
7611
0644
edit
dl
rm
assets\js\admin.js
8534
0644
edit
dl
rm
assets\js\claude-connect.js
6502
0644
edit
dl
rm
includes\class-ad-admin.php
26374
0644
edit
dl
rm
includes\class-ad-ai-client.php
8153
0644
edit
dl
rm
includes\class-ad-auth.php
9189
0644
edit
dl
rm
includes\class-ad-cli.php
8669
0644
edit
dl
rm
includes\class-ad-extractor.php
12210
0644
edit
dl
rm
includes\class-ad-mcp.php
6429
0644
edit
dl
rm
includes\class-ad-plugin-core.php
7947
0644
edit
dl
rm
includes\class-ad-progress.php
8022
0644
edit
dl
rm
includes\class-ad-rest.php
31008
0644
edit
dl
rm
includes\class-ad-uninstall.php
1924
0644
edit
dl
rm
includes\class-ad-webhook.php
14854
0644
edit
dl
rm
templates\admin\claude-connect.php
5152
0644
edit
dl
rm
templates\admin\dashboard.php
10457
0644
edit
dl
rm
templates\admin\export.php
16570
0644
edit
dl
rm
templates\admin\log.php
10849
0644
edit
dl
rm
templates\admin\onboarding-v2.php
3827
0644
edit
dl
rm
templates\admin\onboarding.php
10714
0644
edit
dl
rm
templates\admin\progress.php
2443
0644
edit
dl
rm
templates\admin\schema-preview.php
5213
0644
edit
dl
rm
uninstall.php
365
0644
edit
dl
rm
wp-to-sanity-companion.php
4467
0644
edit
dl
rm
Edit:
/home/altere25/.trash/wp-to-sanity-companion.1/templates\admin\schema-preview.php
(5213B)
<?php /** * Schema Preview admin page (Phase D3). * * Lets the customer generate a Sanity Studio schema from their site analysis, * preview it, download it as a .ts file, or copy it to the clipboard. * * @package AlteredDigitalMigration */ if (!defined('ABSPATH')) { exit; } /** @var AD_Plugin_Core $core */ $core = AD_Plugin_Core::instance(); $rest_url = esc_url_raw(rest_url('altered-digital/v1/schema-generate')); $nonce = wp_create_nonce('wp_rest'); ?> <div class="wrap ad-schema-preview"> <h1><?php echo esc_html__('Schema Preview', 'altered-digital'); ?></h1> <p class="description"> <?php echo esc_html__('Generate a Sanity Studio schema from your WordPress site analysis. The AI proposes document types, fields, and page builder object types you can edit freely.', 'altered-digital'); ?> </p> <div class="ad-schema-actions"> <button type="button" id="ad-schema-generate" class="button button-primary"> <?php echo esc_html__('Generate Schema', 'altered-digital'); ?> </button> <span id="ad-schema-status" class="ad-schema-status"></span> </div> <div id="ad-schema-rationale" class="ad-schema-rationale ad-hidden"></div> <div id="ad-schema-files" class="ad-schema-files"></div> <template id="ad-schema-file-tmpl"> <div class="ad-schema-file"> <div class="ad-schema-file-head"> <strong class="ad-schema-filename"></strong> <div class="ad-schema-file-actions"> <button type="button" class="button ad-schema-copy">Copy</button> <button type="button" class="button ad-schema-download">Download</button> </div> </div> <pre class="ad-schema-code"><code></code></pre> </div> </template> <script> (function () { var btn = document.getElementById('ad-schema-generate'); var status = document.getElementById('ad-schema-status'); var rationale = document.getElementById('ad-schema-rationale'); var filesEl = document.getElementById('ad-schema-files'); var tmpl = document.getElementById('ad-schema-file-tmpl'); function setStatus(msg, err) { status.textContent = msg; status.classList.toggle('ad-err', !!err); } btn.addEventListener('click', async function () { btn.disabled = true; setStatus('Generating…'); rationale.classList.add('ad-hidden'); filesEl.innerHTML = ''; try { var res = await fetch('<?php echo $rest_url; ?>', { method: 'POST', headers: { 'Content-Type': 'application/json', 'X-WP-Nonce': '<?php echo esc_js($nonce); ?>' }, body: JSON.stringify({}) }); var json = await res.json(); if (!json.success) { setStatus(json.data && json.data.error ? json.data.error : 'Generation failed', true); return; } var data = json.data || {}; if (data.deterministic) { setStatus('AI unavailable — generated deterministic scaffold.', false); } else { setStatus('Generated.'); } if (data.rationale) { rationale.textContent = data.rationale; rationale.classList.remove('ad-hidden'); } (data.schemas || []).forEach(function (schema) { var node = tmpl.content.cloneNode(true); node.querySelector('.ad-schema-filename').textContent = schema.filename; node.querySelector('.ad-schema-code code').textContent = schema.code; node.querySelector('.ad-schema-copy').addEventListener('click', function () { navigator.clipboard.writeText(schema.code).then(function () { setStatus('Copied ' + schema.filename); }).catch(function () { setStatus('Copy failed', true); }); }); node.querySelector('.ad-schema-download').addEventListener('click', function () { var blob = new Blob([schema.code], { type: 'text/plain' }); var url = URL.createObjectURL(blob); var a = document.createElement('a'); a.href = url; a.download = schema.filename; document.body.appendChild(a); a.click(); a.remove(); URL.revokeObjectURL(url); }); filesEl.appendChild(node); }); } catch (e) { setStatus(e && e.message ? e.message : 'Request failed', true); } finally { btn.disabled = false; } }); })(); </script> </div>
Save
cmd:
run