File tree Expand file tree Collapse file tree 21 files changed +61
-61
lines changed
Expand file tree Collapse file tree 21 files changed +61
-61
lines changed Original file line number Diff line number Diff line change @@ -54,7 +54,7 @@ Central service registry using dependency injection patterns:
5454#### Web UI (Express.js + EJS) / Code Structure Conventions
5555- ** Controllers** (src/controller/): Handle HTTP requests
5656- ** Views** (views/): EJS templates with layout system ` express-ejs-layouts `
57- - Tailwind CSS 4 for styling
57+ - Tailwind CSS 4 for styling with "Font Awesome 7"
5858- ` web/ ` webserver root with assets
5959- ** Database** schema in ` src/utils/database_schema.ts ` with ` src/repository ` as Database Repository Pattern
6060- ** .prettierrc** : Code formatting (single quotes, 160 width)
Original file line number Diff line number Diff line change 9797 <td class=" border border- gray- 200 px- 3 py- 2 " ><%= row.price.toFixed(2) %></td>
9898 <td class=" border border- gray- 200 px- 3 py- 2 " >
9999 <% if (row.signal === 'long') { %>
100- <i class=" fas fa- chevron - circle- up text- green- 600 " ></i>
100+ <i class=" fas fa- circle- chevron - up text- green- 600 " ></i>
101101 <% } else if (row.signal === 'short') { %>
102- <i class=" fas fa- chevron - circle- down text- red- 600 " ></i>
102+ <i class=" fas fa- circle- chevron - down text- red- 600 " ></i>
103103 <% } else if (row.signal === 'close') { %>
104- <i class=" fa fa- times text- gray- 500 " ></i>
104+ <i class=" fas fa- xmark text- gray- 500 " ></i>
105105 <% } %>
106106 </td>
107107 <td class=" border border- gray- 200 px- 3 py- 2 break - all text- gray- 500 text- xs" >
143143 <td class=" border border- gray- 200 px- 3 py- 2 " ><%= row.price.toFixed(2) %></td>
144144 <td class=" border border- gray- 200 px- 3 py- 2 " >
145145 <% if (row.signal === 'long') { %>
146- <i class=" fas fa- chevron - circle- up text- green- 600 " ></i>
146+ <i class=" fas fa- circle- chevron - up text- green- 600 " ></i>
147147 <% } else if (row.signal === 'short') { %>
148- <i class=" fas fa- chevron - circle- down text- red- 600 " ></i>
148+ <i class=" fas fa- circle- chevron - down text- red- 600 " ></i>
149149 <% } else if (row.signal === 'close') { %>
150- <i class=" fa fa- times text- gray- 500 " ></i>
150+ <i class=" fas fa- xmark text- gray- 500 " ></i>
151151 <% } %>
152152 </td>
153153 <% if (indicatorKeys) { indicatorKeys.forEach(function(key) { %>
Original file line number Diff line number Diff line change 3737 < % if (exchange .has .fetchOHLCV ) { % >
3838 < i class = " fas fa-check text-green-500" >< / i>
3939 < % } else { % >
40- < i class = " fas fa-times text-gray-300" >< / i>
40+ < i class = " fas fa-xmark text-gray-300" >< / i>
4141 < % } % >
4242 < / td>
4343 < td class = " border border-gray-200 px-3 py-2 text-center" >
4444 < % if (exchange .has .createOrder ) { % >
4545 < i class = " fas fa-check text-green-500" >< / i>
4646 < % } else { % >
47- < i class = " fas fa-times text-gray-300" >< / i>
47+ < i class = " fas fa-xmark text-gray-300" >< / i>
4848 < % } % >
4949 < / td>
5050 < / tr>
@@ -173,7 +173,7 @@ async function loadMarkets() {
173173 tbody .innerHTML = `
174174 <tr >
175175 <td colspan =" 6" class =" border border-gray-200 px-3 py-8 text-center ${isAuthError ? 'text-orange-500' : 'text-red-500'}" >
176- <i class =" fas ${isAuthError ? 'fa-lock' : 'fa-exclamation- triangle'} text-2xl mb-2" ></i >
176+ <i class =" fas ${isAuthError ? 'fa-lock' : 'fa-triangle-exclamation '} text-2xl mb-2" ></i >
177177 <div >${ isAuthError ? ' This exchange requires API authentication' : ' Error loading markets' } </div >
178178 <div class =" text-xs text-gray-400 mt-1" >${ errorMsg} </div >
179179 </td >
@@ -206,7 +206,7 @@ function renderMarkets(markets) {
206206 ${ getTypeBadge (m)}
207207 </td>
208208 <td class="border border-gray-200 px-3 py-2 text-center">
209- ${ m .contract ? (m .linear ? ' <i class="fas fa-check text-green-500" title="Linear"></i>' : ' <i class="fas fa-times text-red-400" title="Inverse"></i>' ) : ' <span class="text-gray-300">-</span>' }
209+ ${ m .contract ? (m .linear ? ' <i class="fas fa-check text-green-500" title="Linear"></i>' : ' <i class="fas fa-xmark text-red-400" title="Inverse"></i>' ) : ' <span class="text-gray-300">-</span>' }
210210 </td>
211211 <td class="border border-gray-200 px-3 py-2 whitespace-nowrap">${ m .settle || ' -' } </td>
212212 </tr>
Original file line number Diff line number Diff line change 3232 < td class = " border border-gray-200 px-3 py-2" >
3333 < % if (row .result && row .result ._signal ) { % >
3434 < % if (row .result ._signal === ' long' ) { % >
35- < i class = " fas fa-chevron- circle-up text-green-600" >< / i>
35+ < i class = " fas fa-circle-chevron -up text-green-600" >< / i>
3636 < % } else if (row .result ._signal === ' short' ) { % >
37- < i class = " fas fa-chevron- circle-down text-red-600" >< / i>
37+ < i class = " fas fa-circle-chevron -down text-red-600" >< / i>
3838 < % } else if (row .result ._signal === ' close' ) { % >
39- < i class = " fa fa-times " >< / i>
39+ < i class = " fas fa-xmark " >< / i>
4040 < % } % >
4141 < % } % >
4242 < / td>
6969
7070 < td class = " border border-gray-200 px-3 py-2 break-all" >
7171 < span class = " debug-toggle hide" >
72- < a href= " #" class = " button-debug-toggle" >< i class = " fa fa-eye" >< / i>< / a>
72+ < a href= " #" class = " button-debug-toggle" >< i class = " fas fa-eye" >< / i>< / a>
7373 < span class = " debug-text text-gray-500" >< %= JSON .stringify (row) % >< / span>
7474 < / span>
7575 < / td>
Original file line number Diff line number Diff line change 55 </div >
66 <a href =" /settings"
77 class =" flex items-center gap-2 px-3 py-2 border-b border-gray-100 border-l-2 <%= activeSettingsPage === '' ? 'bg-blue-50 text-blue-700 font-medium border-l-blue-600' : 'text-gray-700 hover:bg-gray-50 border-l-transparent' %>" >
8- <i class =" fas fa-info- circle w-4 text-center text-xs <%= activeSettingsPage === '' ? 'text-blue-500' : 'text-gray-400' %>" ></i >
8+ <i class =" fas fa-circle-info w-4 text-center text-xs <%= activeSettingsPage === '' ? 'text-blue-500' : 'text-gray-400' %>" ></i >
99 System
1010 </a >
1111
Original file line number Diff line number Diff line change 6262 const ta = row .ta [period];
6363 % >
6464 < td class = " border border-gray-200 px-2 py-1 <%= (ta && ta.ema_55 && ta.ema_55.value && ta.ema_200 && ta.ema_200.value && ta.ema_55.value > ta.ema_200.value) ? 'text-green-600' : 'text-red-600' %>" >
65- < i class = " fas <%= (ta && ta.ema_55 && ta.ema_55.value && ta.ema_200 && ta.ema_200.value && ta.ema_55.value > ta.ema_200.value) ? 'fa-arrow-alt- circle-up' : 'fa-arrow-alt- circle-down' %>" >< / i>
65+ < i class = " fas <%= (ta && ta.ema_55 && ta.ema_55.value && ta.ema_200 && ta.ema_200.value && ta.ema_55.value > ta.ema_200.value) ? 'fa-circle-arrow- up' : 'fa-circle-arrow -down' %>" >< / i>
6666 < / td>
6767 < td class = " border border-gray-200 px-2 py-1" >
6868 < % if (ta && ta .sma_200 && ta .sma_200 .value ) { % >
111111 < % } else if (ta && ta .stoch_rsi && ta .stoch_rsi .value && ta .stoch_rsi .value .stoch_k <= 20 && ta .stoch_rsi .value .stoch_d <= 20 ) { % >
112112 < i title= " <%= Math.round(ta.stoch_rsi.value.stoch_k * 100) / 100 %>" class = " far fa-circle text-green-600" >< / i>
113113 < % } else if (ta && ta .stoch_rsi && ta .stoch_rsi .value ) { % >
114- < i title= " <%= Math.round(ta.stoch_rsi.value.stoch_k * 100) / 100 %>" class = " far fa-arrow-alt- circle-up <%= ta.stoch_rsi.value.stoch_k >= ta.stoch_rsi.value.stoch_d ? 'trend-up text-green-600' : 'trend-down text-red-600' %>" >< / i>
114+ < i title= " <%= Math.round(ta.stoch_rsi.value.stoch_k * 100) / 100 %>" class = " far fa-circle-arrow -up <%= ta.stoch_rsi.value.stoch_k >= ta.stoch_rsi.value.stoch_d ? 'trend-up text-green-600' : 'trend-down text-red-600' %>" >< / i>
115115 < % } else { % > - < % } % >
116116 < / td>
117117 < td class = " border border-gray-200 px-2 py-1 <%= (ta && ta.ao && ta.ao.value) ? (ta.ao.value > 0 ? 'text-green-600' : 'text-red-600') : '' %>" >
121121 < / td>
122122 < td class = " border border-gray-200 px-2 py-1 <%= (ta && ta.macd && ta.macd.value && ta.macd.value.histogram !== undefined) ? (ta.macd.value.histogram > 0 ? 'text-green-600' : 'text-red-600') : '' %>" >
123123 < % if (ta && ta .macd && ta .macd .value && ta .macd .value .histogram !== undefined ) { % >
124- < i title= " <%= ta.macd.crossed || '-' %>m ago" class = " far fa-arrow-alt- circle-up <%= ta.macd.trend == 'up' ? 'trend-up' : 'trend-down' %> <%= ((ta.macd.value.histogram > 0 && ta.macd.trend == 'down') || (ta.macd.value.histogram < 0 && ta.macd.trend == 'up')) ? 'font-bold' : '' %> <%= ta.macd.crossed_index && ta.macd.crossed_index < 5 ? 'blink' : '' %>" >< / i>
124+ < i title= " <%= ta.macd.crossed || '-' %>m ago" class = " far fa-circle-arrow -up <%= ta.macd.trend == 'up' ? 'trend-up' : 'trend-down' %> <%= ((ta.macd.value.histogram > 0 && ta.macd.trend == 'down') || (ta.macd.value.histogram < 0 && ta.macd.trend == 'up')) ? 'font-bold' : '' %> <%= ta.macd.crossed_index && ta.macd.crossed_index < 5 ? 'blink' : '' %>" >< / i>
125125 < % } else { % > - < % } % >
126126 < / td>
127127 < td class = " border border-gray-200 px-2 py-1 <%= (ta && ta.mfi && ta.mfi.value) ? [
Original file line number Diff line number Diff line change 8484 < / td>
8585 < td class = " border border-gray-200 px-2 py-1 text-center" >
8686 < button type= " button" onclick= " removePair(this)" class = " text-red-600 hover:text-red-800 cursor-pointer" >
87- < i class = " fas fa-times " >< / i>
87+ < i class = " fas fa-xmark " >< / i>
8888 < / button>
8989 < / td>
9090 < / tr>
@@ -315,7 +315,7 @@ function addPair() {
315315 </td >
316316 <td class =" border border-gray-200 px-2 py-1 text-center" >
317317 <button type =" button" onclick =" removePair(this)" class =" text-red-600 hover:text-red-800 cursor-pointer" >
318- <i class =" fas fa-times " ></i >
318+ <i class =" fas fa-xmark " ></i >
319319 </button >
320320 </td >
321321 ` ;
Original file line number Diff line number Diff line change 9898 < / td>
9999 < td class = " border border-gray-200 px-2 py-1 text-center" >
100100 < button type= " button" onclick= " removePair(this)" class = " text-red-600 hover:text-red-800 cursor-pointer" >
101- < i class = " fas fa-times " >< / i>
101+ < i class = " fas fa-xmark " >< / i>
102102 < / button>
103103 < / td>
104104 < / tr>
@@ -308,7 +308,7 @@ function addPair() {
308308 </td >
309309 <td class =" border border-gray-200 px-2 py-1 text-center" >
310310 <button type =" button" onclick =" removePair(this)" class =" text-red-600 hover:text-red-800 cursor-pointer" >
311- <i class =" fas fa-times " ></i >
311+ <i class =" fas fa-xmark " ></i >
312312 </button >
313313 </td >
314314 ` ;
Original file line number Diff line number Diff line change 6262 < / td>
6363 < td class = " border border-gray-200 px-2 py-1 text-center whitespace-nowrap" >
6464 < a href= " /desk/<%= index %>/edit" class = " inline-block px-3 py-1 text-xs bg-green-100 text-green-700 hover:bg-green-200 rounded cursor-pointer" >
65- < i class = " fas fa-edit mr-1" >< / i> Edit
65+ < i class = " fas fa-pen-to-square mr-1" >< / i> Edit
6666 < / a>
6767 < form action= " /desk/<%= index %>/delete" method= " POST" class = " inline ml-1" >
6868 < button type= " submit" class = " px-3 py-1 text-xs bg-red-100 text-red-700 hover:bg-red-200 rounded cursor-pointer" onclick= " return confirm('Delete desk "<%= desk.name %>"?');" >
Original file line number Diff line number Diff line change 44 <div class =" bg-white border border-gray-200 rounded-lg shadow-sm" >
55 <div class =" p-6 text-center" >
66 <div class =" mb-4" >
7- <i class =" fas fa-exclamation- triangle text-6xl text-red-500" ></i >
7+ <i class =" fas fa-triangle-exclamation text-6xl text-red-500" ></i >
88 </div >
99 <h1 class =" text-2xl font-bold text-gray-800 mb-2" ><%= title %> </h1 >
1010 <p class =" text-gray-600 mb-6" ><%= message %> </p >
You can’t perform that action at this time.
0 commit comments