Barry8 commited on
Commit
55dc5d7
·
verified ·
1 Parent(s): 32d23dc

ok, now where are the pairs to choose from and also no buttons work

Browse files
Files changed (1) hide show
  1. index.html +74 -39
index.html CHANGED
@@ -81,14 +81,16 @@
81
  </div>
82
  </header>
83
  <div class="p-4">
84
- <select id="pairSelector" class="w-full p-2 border rounded" multiple="multiple"></select>
85
- <div class="flex space-x-2 mt-2">
86
- <button id="addPairsBtn" class="flex-1 p-2 bg-green-500 text-white rounded">Add Selected Pairs</button>
87
- <button id="clearPairsBtn" class="flex-1 p-2 bg-red-500 text-white rounded">Clear All</button>
 
 
 
88
  </div>
89
  </div>
90
-
91
- <div id="chartGrid" class="chart-grid"></div>
92
  </div>
93
 
94
  <div id="sidebar" class="p-4">
@@ -151,16 +153,18 @@
151
  const closeSidebar = document.getElementById('closeSidebar');
152
  const darkModeToggle = document.getElementById('darkModeToggle');
153
  const timeframeSelector = document.getElementById('timeframe');
154
-
155
  // Initialize UI components
156
- $(document).ready(function() {
157
  // Initialize Select2 for pair selection
158
- pairSelector.select2({
159
  placeholder: "Search and select trading pairs",
160
  allowClear: true,
161
  width: '100%',
162
  closeOnSelect: false
163
  });
 
 
 
164
  // Initialize color pickers
165
  const candleUpPicker = Pickr.create({
166
  el: '#candleUpColor',
@@ -193,28 +197,44 @@
193
  }
194
  }
195
  });
 
 
 
 
 
196
 
197
- // Load saved settings
198
- loadSettings();
 
 
199
 
200
- // Initialize WebSocket connection
201
- initWebSocket();
 
 
202
 
203
- // Fetch available pairs
204
- fetchPairs();
 
 
 
 
 
 
 
205
 
206
- // Event listeners
207
- document.getElementById('addPairsBtn').addEventListener('click', addSelectedPairs);
208
- document.getElementById('clearPairsBtn').addEventListener('click', clearAllPairs);
209
- settingsBtn.addEventListener('click', openSidebar);
210
- closeSidebar.addEventListener('click', closeSidebar);
211
-
212
  // Close sidebar when clicking outside
213
  document.addEventListener('click', function(event) {
214
  if (!sidebar.contains(event.target) && event.target !== settingsBtn) {
215
  closeSidebar();
216
  }
217
  });
 
 
 
 
 
 
218
  darkModeToggle.addEventListener('click', function() {
219
  document.body.classList.toggle('dark-mode');
220
  const isDarkMode = document.body.classList.contains('dark-mode');
@@ -261,8 +281,8 @@ document.getElementById('saveSettings').addEventListener('click', saveSettings);
261
  processWebSocketMessage(message);
262
  };
263
  }
264
-
265
  function fetchPairs() {
 
266
  fetch('https://fapi.binance.com/fapi/v1/exchangeInfo')
267
  .then(response => response.json())
268
  .then(data => {
@@ -273,9 +293,20 @@ document.getElementById('saveSettings').addEventListener('click', saveSettings);
273
  text: symbol.symbol
274
  }));
275
 
276
- pairSelector.select2({ data: pairs });
 
 
 
 
 
 
 
277
  })
278
- .catch(error => console.error('Error fetching pairs:', error));
 
 
 
 
279
  }
280
  function addSelectedPairs() {
281
  const selectedPairs = pairSelector.val();
@@ -526,22 +557,26 @@ function updateChartTheme(pair, isDarkMode) {
526
  }
527
  });
528
  }
529
- function saveSettings() {
530
- const settings = {
531
- showPrice: document.getElementById('showPrice').checked,
532
- showVolume: document.getElementById('showVolume').checked,
533
- showOI: document.getElementById('showOI').checked,
534
- showFunding: document.getElementById('showFunding').checked,
535
- showFundingTimer: document.getElementById('showFundingTimer').checked,
536
- darkMode: document.body.classList.contains('dark-mode'),
537
- selectedPairs: Array.from(subscribedPairs),
538
- timeframe: timeframeSelector.value
539
- };
540
- localStorage.setItem('binanceDashboardSettings', JSON.stringify(settings));
541
- closeSidebar();
 
 
 
 
 
542
  }
543
-
544
- function loadSettings() {
545
  const savedSettings = localStorage.getItem('binanceDashboardSettings');
546
  if (savedSettings) {
547
  const settings = JSON.parse(savedSettings);
 
81
  </div>
82
  </header>
83
  <div class="p-4">
84
+ <div class="mb-2">
85
+ <label for="pairSelector" class="block font-medium mb-1">Select Trading Pairs:</label>
86
+ <select id="pairSelector" class="w-full p-2 border rounded" multiple="multiple"></select>
87
+ </div>
88
+ <div class="flex space-x-2">
89
+ <button id="addPairsBtn" class="flex-1 p-2 bg-green-500 text-white rounded hover:bg-green-600">Add Selected Pairs</button>
90
+ <button id="clearPairsBtn" class="flex-1 p-2 bg-red-500 text-white rounded hover:bg-red-600">Clear All</button>
91
  </div>
92
  </div>
93
+ <div id="chartGrid" class="chart-grid"></div>
 
94
  </div>
95
 
96
  <div id="sidebar" class="p-4">
 
153
  const closeSidebar = document.getElementById('closeSidebar');
154
  const darkModeToggle = document.getElementById('darkModeToggle');
155
  const timeframeSelector = document.getElementById('timeframe');
 
156
  // Initialize UI components
157
+ document.addEventListener('DOMContentLoaded', function() {
158
  // Initialize Select2 for pair selection
159
+ $(pairSelector).select2({
160
  placeholder: "Search and select trading pairs",
161
  allowClear: true,
162
  width: '100%',
163
  closeOnSelect: false
164
  });
165
+
166
+ // Load pairs immediately
167
+ fetchPairs();
168
  // Initialize color pickers
169
  const candleUpPicker = Pickr.create({
170
  el: '#candleUpColor',
 
197
  }
198
  }
199
  });
200
+ // Event listeners
201
+ document.getElementById('addPairsBtn').addEventListener('click', function() {
202
+ console.log('Add pairs clicked');
203
+ addSelectedPairs();
204
+ });
205
 
206
+ document.getElementById('clearPairsBtn').addEventListener('click', function() {
207
+ console.log('Clear pairs clicked');
208
+ clearAllPairs();
209
+ });
210
 
211
+ settingsBtn.addEventListener('click', function() {
212
+ console.log('Settings clicked');
213
+ openSidebar();
214
+ });
215
 
216
+ closeSidebar.addEventListener('click', function() {
217
+ console.log('Close sidebar clicked');
218
+ closeSidebar();
219
+ });
220
+
221
+ document.getElementById('saveSettings').addEventListener('click', function() {
222
+ console.log('Save settings clicked');
223
+ saveSettings();
224
+ });
225
 
 
 
 
 
 
 
226
  // Close sidebar when clicking outside
227
  document.addEventListener('click', function(event) {
228
  if (!sidebar.contains(event.target) && event.target !== settingsBtn) {
229
  closeSidebar();
230
  }
231
  });
232
+
233
+ // Initialize WebSocket connection
234
+ initWebSocket();
235
+
236
+ // Load saved settings
237
+ loadSettings();
238
  darkModeToggle.addEventListener('click', function() {
239
  document.body.classList.toggle('dark-mode');
240
  const isDarkMode = document.body.classList.contains('dark-mode');
 
281
  processWebSocketMessage(message);
282
  };
283
  }
 
284
  function fetchPairs() {
285
+ console.log('Fetching available pairs...');
286
  fetch('https://fapi.binance.com/fapi/v1/exchangeInfo')
287
  .then(response => response.json())
288
  .then(data => {
 
293
  text: symbol.symbol
294
  }));
295
 
296
+ console.log(`Loaded ${pairs.length} trading pairs`);
297
+ $(pairSelector).select2({
298
+ data: pairs,
299
+ placeholder: "Search and select trading pairs",
300
+ allowClear: true,
301
+ width: '100%',
302
+ closeOnSelect: false
303
+ });
304
  })
305
+ .catch(error => {
306
+ console.error('Error fetching pairs:', error);
307
+ // Retry after 5 seconds if failed
308
+ setTimeout(fetchPairs, 5000);
309
+ });
310
  }
311
  function addSelectedPairs() {
312
  const selectedPairs = pairSelector.val();
 
557
  }
558
  });
559
  }
560
+ function saveSettings() {
561
+ try {
562
+ const settings = {
563
+ showPrice: document.getElementById('showPrice').checked,
564
+ showVolume: document.getElementById('showVolume').checked,
565
+ showOI: document.getElementById('showOI').checked,
566
+ showFunding: document.getElementById('showFunding').checked,
567
+ showFundingTimer: document.getElementById('showFundingTimer').checked,
568
+ darkMode: document.body.classList.contains('dark-mode'),
569
+ selectedPairs: Array.from(subscribedPairs),
570
+ timeframe: document.getElementById('timeframe').value
571
+ };
572
+ localStorage.setItem('binanceDashboardSettings', JSON.stringify(settings));
573
+ console.log('Settings saved successfully');
574
+ closeSidebar();
575
+ } catch (error) {
576
+ console.error('Error saving settings:', error);
577
+ }
578
  }
579
+ function loadSettings() {
 
580
  const savedSettings = localStorage.getItem('binanceDashboardSettings');
581
  if (savedSettings) {
582
  const settings = JSON.parse(savedSettings);