update
This commit is contained in:
@@ -58,7 +58,14 @@
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<?php
|
||||
$openai_enabled = \services\GoogleAdsApi::get_setting( 'openai_enabled' ) !== '0';
|
||||
$claude_enabled = \services\GoogleAdsApi::get_setting( 'claude_enabled' ) !== '0';
|
||||
?>
|
||||
<script type="text/javascript">
|
||||
var AI_OPENAI_ENABLED = <?= $openai_enabled ? 'true' : 'false'; ?>;
|
||||
var AI_CLAUDE_ENABLED = <?= $claude_enabled ? 'true' : 'false'; ?>;
|
||||
|
||||
function show_toast( message, type )
|
||||
{
|
||||
var bg = type === 'error' ? '#dc3545' : '#28a745';
|
||||
@@ -263,7 +270,8 @@ $( function()
|
||||
'<label>Tytuł produktu</label>' +
|
||||
'<div class="input-with-ai">' +
|
||||
'<input type="text" value="" product_id="' + $( this ).attr( 'product_id' ) + '" placeholder="Tytuł produktu" class="name form-control" required />' +
|
||||
'<button type="button" class="btn btn-sm btn-ai-suggest" data-field="title" title="Zaproponuj tytuł przez AI"><i class="fa-solid fa-wand-magic-sparkles"></i> AI</button>' +
|
||||
( AI_OPENAI_ENABLED ? '<button type="button" class="btn btn-sm btn-ai-suggest" data-field="title" data-provider="openai" title="Zaproponuj tytuł przez ChatGPT"><i class="fa-solid fa-wand-magic-sparkles"></i> GPT</button>' : '' ) +
|
||||
( AI_CLAUDE_ENABLED ? '<button type="button" class="btn btn-sm btn-ai-suggest btn-ai-claude" data-field="title" data-provider="claude" title="Zaproponuj tytuł przez Claude"><i class="fa-solid fa-brain"></i> Claude</button>' : '' ) +
|
||||
'</div>' +
|
||||
'<small>0/150 znaków</small>' +
|
||||
'</div>' +
|
||||
@@ -284,7 +292,8 @@ $( function()
|
||||
'<textarea class="form-control description" style="height:220px;resize:vertical" placeholder="Opis produktu (opcjonalnie)"></textarea>' +
|
||||
'<div class="desc-preview" style="display:none;height:220px;overflow-y:auto;padding:10px 12px;border:1px solid #ddd;border-radius:4px;background:#fff;font-size:13px;line-height:1.6"></div>' +
|
||||
'</div>' +
|
||||
'<button type="button" class="btn btn-sm btn-ai-suggest" data-field="description" title="Zaproponuj opis przez AI"><i class="fa-solid fa-wand-magic-sparkles"></i> AI</button>' +
|
||||
( AI_OPENAI_ENABLED ? '<button type="button" class="btn btn-sm btn-ai-suggest" data-field="description" data-provider="openai" title="Zaproponuj opis przez ChatGPT"><i class="fa-solid fa-wand-magic-sparkles"></i> GPT</button>' : '' ) +
|
||||
( AI_CLAUDE_ENABLED ? '<button type="button" class="btn btn-sm btn-ai-suggest btn-ai-claude" data-field="description" data-provider="claude" title="Zaproponuj opis przez Claude"><i class="fa-solid fa-brain"></i> Claude</button>' : '' ) +
|
||||
'</div>' +
|
||||
'</div>' +
|
||||
'<div class="form-group">' +
|
||||
@@ -293,7 +302,8 @@ $( function()
|
||||
'<select class="form-control google-category" id="google_category" style="width: calc(100% - 60px)">' +
|
||||
'<option value="">— wybierz kategorię —</option>' +
|
||||
'</select>' +
|
||||
'<button type="button" class="btn btn-sm btn-ai-suggest" data-field="category" title="Zaproponuj kategorię przez AI"><i class="fa-solid fa-wand-magic-sparkles"></i> AI</button>' +
|
||||
( AI_OPENAI_ENABLED ? '<button type="button" class="btn btn-sm btn-ai-suggest" data-field="category" data-provider="openai" title="Zaproponuj kategorię przez ChatGPT"><i class="fa-solid fa-wand-magic-sparkles"></i> GPT</button>' : '' ) +
|
||||
( AI_CLAUDE_ENABLED ? '<button type="button" class="btn btn-sm btn-ai-suggest btn-ai-claude" data-field="category" data-provider="claude" title="Zaproponuj kategorię przez Claude"><i class="fa-solid fa-brain"></i> Claude</button>' : '' ) +
|
||||
'</div>' +
|
||||
'</div>' +
|
||||
'</form>',
|
||||
@@ -420,14 +430,16 @@ $( function()
|
||||
this.$content.on( 'click', '.btn-ai-suggest', function() {
|
||||
var $btn = $( this );
|
||||
var field = $btn.data( 'field' );
|
||||
var provider = $btn.data( 'provider' ) || 'openai';
|
||||
var originalHtml = $btn.html();
|
||||
var providerLabel = provider === 'claude' ? 'Claude' : 'ChatGPT';
|
||||
|
||||
$btn.prop( 'disabled', true ).html( '<i class="fa-solid fa-spinner fa-spin"></i>' );
|
||||
|
||||
$.ajax({
|
||||
url: '/products/ai_suggest/',
|
||||
type: 'POST',
|
||||
data: { product_id: product_id, field: field, product_url: $productUrl.val() },
|
||||
data: { product_id: product_id, field: field, product_url: $productUrl.val(), provider: provider },
|
||||
success: function( response ) {
|
||||
var data = JSON.parse( response );
|
||||
if ( data.status == 'ok' ) {
|
||||
@@ -443,20 +455,22 @@ $( function()
|
||||
if ( $googleCategory.find( 'option[value="' + catId + '"]' ).length ) {
|
||||
$googleCategory.val( catId ).trigger( 'change' );
|
||||
} else {
|
||||
$.alert({ title: 'AI sugestia', content: 'Sugerowana kategoria: ' + catId, type: 'blue' });
|
||||
$.alert({ title: 'AI sugestia (' + providerLabel + ')', content: 'Sugerowana kategoria: ' + catId, type: 'blue' });
|
||||
}
|
||||
}
|
||||
if ( data.warning ) {
|
||||
show_toast( data.warning, 'error' );
|
||||
show_toast( providerLabel + ': ' + data.warning, 'error' );
|
||||
} else if ( data.page_fetched ) {
|
||||
show_toast( 'Sugestia wygenerowana z treścią strony produktu', 'success' );
|
||||
show_toast( providerLabel + ': Sugestia wygenerowana z treścią strony produktu', 'success' );
|
||||
} else {
|
||||
show_toast( providerLabel + ': Sugestia wygenerowana', 'success' );
|
||||
}
|
||||
} else {
|
||||
show_toast( data.message || 'Wystąpił błąd AI.', 'error' );
|
||||
show_toast( providerLabel + ': ' + ( data.message || 'Wystąpił błąd AI.' ), 'error' );
|
||||
}
|
||||
},
|
||||
error: function() {
|
||||
$.alert({ title: 'Błąd', content: 'Nie udało się połączyć z API.', type: 'red' });
|
||||
$.alert({ title: 'Błąd', content: 'Nie udało się połączyć z API ' + providerLabel + '.', type: 'red' });
|
||||
},
|
||||
complete: function() {
|
||||
$btn.prop( 'disabled', false ).html( originalHtml );
|
||||
|
||||
Reference in New Issue
Block a user