Subversion Repositories SmartDukaan

Rev

Rev 37335 | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 37335 Rev 37526
Line 116... Line 116...
116
  .oc-root .oc-mini tr:last-child td { border-bottom: none; }
116
  .oc-root .oc-mini tr:last-child td { border-bottom: none; }
117
  .oc-root .oc-mini code { font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
117
  .oc-root .oc-mini code { font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
118
                           font-size: 11px; background: var(--oc-bg); padding: 1px 5px;
118
                           font-size: 11px; background: var(--oc-bg); padding: 1px 5px;
119
                           border-radius: 4px; border: 1px solid var(--oc-border); }
119
                           border-radius: 4px; border: 1px solid var(--oc-border); }
120
  .oc-num { font-variant-numeric: tabular-nums; color: var(--oc-muted); white-space: nowrap; }
120
  .oc-num { font-variant-numeric: tabular-nums; color: var(--oc-muted); white-space: nowrap; }
-
 
121
 
-
 
122
  /* Ingest summary. It arrives as a Java Map.toString() - one long line that cannot
-
 
123
     wrap usefully - so it is parsed into chips rather than printed. The long drop-reason
-
 
124
     map goes behind a disclosure: it is the detail you want when a count looks wrong,
-
 
125
     and noise the rest of the time. */
-
 
126
  .oc-sum { display: flex; flex-wrap: wrap; gap: 6px; align-items: center;
-
 
127
            width: 100%; margin-top: 6px; }
-
 
128
  .oc-sum-chip { display: inline-flex; align-items: baseline; gap: 5px; padding: 2px 9px;
-
 
129
                 border: 1px solid var(--oc-border); border-radius: 999px;
-
 
130
                 background: var(--oc-surface); font-size: 11.5px; color: var(--oc-muted);
-
 
131
                 white-space: nowrap; }
-
 
132
  .oc-sum-chip b { font-weight: 650; color: var(--oc-text); font-variant-numeric: tabular-nums; }
-
 
133
  .oc-sum-chip-warn { background: var(--oc-warn-soft); border-color: rgb(253, 230, 138); }
-
 
134
  .oc-sum-chip-warn b { color: var(--oc-warn); }
-
 
135
  .oc-sum-toggle { border: 1px solid var(--oc-border); background: var(--oc-surface);
-
 
136
                   border-radius: 999px; padding: 2px 9px; font-size: 11.5px;
-
 
137
                   color: var(--oc-muted); cursor: pointer; }
-
 
138
  .oc-sum-toggle:hover { border-color: var(--oc-accent); color: var(--oc-accent); }
-
 
139
  .oc-sum-detail { width: 100%; margin-top: 6px; border: 1px solid var(--oc-border);
-
 
140
                   border-radius: 8px; background: var(--oc-bg); padding: 6px 10px;
-
 
141
                   max-height: 220px; overflow-y: auto; display: none; }
-
 
142
  .oc-sum-detail div { display: flex; gap: 14px; justify-content: space-between;
-
 
143
                       padding: 3px 0; font-size: 12px; border-bottom: 1px solid var(--oc-border); }
-
 
144
  .oc-sum-detail div:last-child { border-bottom: 0; }
-
 
145
  .oc-sum-detail span:first-child { color: var(--oc-text); word-break: break-word; }
-
 
146
  .oc-sum-detail span:last-child { color: var(--oc-muted); font-variant-numeric: tabular-nums;
-
 
147
                                   white-space: nowrap; }
-
 
148
  /* anything not parsed still has to wrap rather than run off the card */
-
 
149
  .oc-sum-raw { white-space: normal; word-break: break-word; }
121
  .oc-mono { font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
150
  .oc-mono { font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
122
             font-size: 12px; }
151
             font-size: 12px; }
123
 
152
 
124
  /* pills */
153
  /* pills */
125
  .oc-pill { display: inline-block; padding: 2px 8px; border-radius: 999px;
154
  .oc-pill { display: inline-block; padding: 2px 8px; border-radius: 999px;
Line 230... Line 259...
230
      <div class="oc-tile-value" data-oc-stat="pending">&ndash;</div></div>
259
      <div class="oc-tile-value" data-oc-stat="pending">&ndash;</div></div>
231
    <div class="oc-tile"><div class="oc-tile-label">Brands</div>
260
    <div class="oc-tile"><div class="oc-tile-label">Brands</div>
232
      <div class="oc-tile-value" data-oc-stat="brands">&ndash;</div></div>
261
      <div class="oc-tile-value" data-oc-stat="brands">&ndash;</div></div>
233
  </div>
262
  </div>
234
 
263
 
235
  <!-- Curation queue. Grouped by distinct (OEM, product text) rather than by circular
264
  <!-- Product resolution moved to its own screen (Offer Circular -> Resolve Products):
236
       row, because a saved decision is keyed the same way: answer once and every row
265
       it is a working queue with a form, and a form laid out inside a six-column table
237
       carrying that text is resolved, on this circular and on every later one. -->
266
       never aligned. Keeping a copy here would also double-bind the delegated handlers. -->
238
  <div class="oc-card" style="margin-bottom:16px;">
267
  <div class="oc-card" style="margin-bottom:16px;">
239
    <div class="oc-card-head">
268
    <div class="oc-card-head">
240
      <span>Resolve products <span class="oc-num" data-oc-resolve-count></span></span>
-
 
241
      <span style="display:flex;gap:8px;align-items:center;flex-wrap:wrap;">
-
 
242
        <span class="oc-num" data-oc-resolve-pending></span>
269
      <span>Resolve products</span>
243
        <button class="oc-btn oc-btn-ghost" type="button" data-oc-alias-export
-
 
244
                title="Emit every saved decision as SQL so it can be replayed on another environment">Export as SQL</button>
-
 
245
        <button class="oc-btn oc-btn-ghost" type="button" data-oc-reingest
-
 
246
                title="Saved decisions are only read when the circular is parsed, so they need a re-ingest to take effect">Re-ingest to apply</button>
270
      <button class="oc-btn" type="button" onclick="if(window.openOfferCircularResolve){window.openOfferCircularResolve('main-content');}else{window.location='/offerCircularResolve';}">Open the queue</button>
247
        <button class="oc-btn" type="button" data-oc-resolve-toggle>Show queue</button>
-
 
248
      </span>
-
 
249
    </div>
-
 
250
    <div data-oc-resolve-wrap style="display:none;">
-
 
251
      <div class="oc-scroll" style="max-height:60vh;">
-
 
252
        <table class="oc-table">
-
 
253
          <thead>
-
 
254
            <tr>
-
 
255
              <th>Product as printed</th>
-
 
256
              <th>OEM</th>
-
 
257
              <th>Affects</th>
-
 
258
              <th>Closest miss</th>
-
 
259
              <th>Decision</th>
-
 
260
              <th></th>
-
 
261
            </tr>
-
 
262
          </thead>
-
 
263
          <tbody data-oc-resolve-body>
-
 
264
            <tr><td colspan="6" class="oc-spin">Loading decisions&hellip;</td></tr>
-
 
265
          </tbody>
-
 
266
        </table>
-
 
267
      </div>
-
 
268
      <div class="oc-foot"><span data-oc-resolve-msg></span></div>
-
 
269
    </div>
271
    </div>
270
  </div>
272
  </div>
271
 
273
 
272
  <div class="oc-filters">
274
  <div class="oc-filters">
273
    <div class="oc-field">
275
    <div class="oc-field">