PluginProbe
WPBot – AI ChatBot for Live Support, Lead Generation, WordPress Automation, AI Services / 7.2.8
WPBot – AI ChatBot for Live Support, Lead Generation, WordPress Automation, AI Services v7.2.8
8.8.3 8.8.2 8.8.1 8.8.0 8.7.9 8.7.8 8.7.7 8.7.6 8.7.5 8.7.4 8.7.3 8.7.2 8.7.1 8.7.0 8.6.9 8.6.8 8.6.7 8.6.6 8.6.5 8.6.4 8.6.2 8.6.1 8.6.0 8.5.9 8.5.8 All 539 releases
chatbot / includes / integration / openrouter / assets / js / qcld-wp-openrouter-admin.js

qcld-wp-openrouter-admin.js in WPBot – AI ChatBot for Live Support, Lead Generation, WordPress Automation, AI Services 7.2.8, at includes/integration/openrouter/assets/js/qcld-wp-openrouter-admin.js

114 lines 5.3 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 jQuery(document).ready(function($) {
2 // Function to fetch models from OpenRouter API
3 function fetchOpenRouterModels() {
4 var modelSelect = $('#qcld_openrouter_model');
5 modelSelect.html('<option value="">Loading models...</option>');
6
7 $.ajax({
8 url: 'https://openrouter.ai/api/v1/models',
9 method: 'GET',
10 headers: {
11 'Authorization': 'Bearer ' + $('#qcld_openrouter_api_key').val()
12 },
13 success: function(response) {
14 modelSelect.empty();
15
16 if (response.data && response.data.length > 0) {
17 response.data.forEach(function(model) {
18 var option = $('<option></option>')
19 .val(model.id)
20 .text(model.name + ' (' + model.id + ')');
21
22 // Set selected if this is the current model
23 if (model.id === modelSelect.data('current-model')) {
24 option.prop('selected', true);
25 }
26
27 modelSelect.append(option);
28 });
29 } else {
30 modelSelect.append($('<option></option>')
31 .val('')
32 .text('No models available'));
33 }
34 },
35 error: function(xhr) {
36 modelSelect.empty();
37 modelSelect.append($('<option></option>')
38 .val('')
39 .text('Error loading models'));
40
41 if (xhr.status === 401) {
42 alert('Invalid API key. Please check your OpenRouter API key.');
43 }
44 }
45 });
46 }
47
48 // Fetch models when page loads
49 fetchOpenRouterModels();
50
51 // Refresh models when API key changes
52 $('#qcld_openrouter_api_key').on('change', function() {
53 fetchOpenRouterModels();
54 });
55
56 var settingsOpenrouter = document.getElementById("qcld_save_openrouter_setting");
57 if(settingsOpenrouter){
58 $('.qcl-openai').on('click', '#qcld_save_openrouter_setting', function(){
59 if ($('#qcld_openrouter_enabled').is(":checked")){
60 var openrouter_enabled = 1;
61 }else{
62 var openrouter_enabled = 0;
63 }
64 var qcld_openrouter_page_suggestion_enabled = jQuery("#qcld_openrouter_page_suggestion_enabled").is(":checked") ? 1 : 0;
65 var opnrouter_is_context_awareness_enabled = jQuery("#opnrouter_is_context_awareness_enabled").is(":checked") ? 1 : 0;
66 var qcld_openrouter_api_key = jQuery("#qcld_openrouter_api_key").val();
67 var qcld_openrouter_model = jQuery('#qcld_openrouter_model').val();
68 var qcld_openrouter_append_content = jQuery('#qcld_openrouter_append_content').val();
69 var qcld_openrouter_prepend_content = jQuery('#qcld_openrouter_prepend_content').val();
70 var post_openrouter_types = $.map($('input[name="site_openrouter_search_posttypes[]"]:checked'), function(c){return c.value; });
71 $.ajax({
72 url: qcld_gemini_admin_data.ajax_url,
73 type:'POST',
74 data: {
75 action: 'qcld_openrouter_settings_option',
76 nonce: qcld_gemini_admin_data.ajax_nonce,
77 openrouter_api_key: qcld_openrouter_api_key,
78 openrouter_model: qcld_openrouter_model,
79 openrouter_enabled: openrouter_enabled,
80 qcld_openrouter_page_suggestion_enabled: qcld_openrouter_page_suggestion_enabled,
81 opnrouter_is_context_awareness_enabled: opnrouter_is_context_awareness_enabled,
82 qcld_openrouter_append_content: qcld_openrouter_append_content,
83 qcld_openrouter_prepend_content: qcld_openrouter_prepend_content,
84 openai_post_type:post_openrouter_types
85 },
86 success: function(data){
87 $('#result').html(data);
88 Swal.fire({
89 title: 'Your settings are saved.',
90 html: '<p style=font-size:14px>Please clear your browser <b>cache</b> and <b>cookies</b> both and reload the front end before testing. Alternatively, you can launch a new browser window in <b>Incognito</b>/Private mode (Ctrl+Shift+N in chrome) to test.</p><p></b></p>',
91 width: 450,
92 icon: 'success',
93 confirmButtonText: 'Got it',
94 confirmButtonWidth: 100,
95 confirmButtonClass: 'btn btn-lg',
96 }).then((result) => {
97 if (result.isConfirmed) {
98 $.ajax({
99 url: qcld_gemini_admin_data.ajax_url,
100 type: 'POST',
101 data: {
102 action: 'update_settings_option',
103 nonce: qcld_gemini_admin_data.ajax_nonce,
104 disable_ss: 1
105 },
106
107 });
108 }
109 });
110 }
111 });
112 });
113 }
114 });