{% extends "base.html" %} {% block title %}Timeline — SignalOps{% endblock %} {% block extra_style %} [hidden]{display:none!important} .tl-top{display:flex;gap:10px;align-items:flex-end;flex-wrap:wrap;padding:12px 14px} .tl-f{display:flex;flex-direction:column;gap:4px;min-width:0} .tl-f>label,.tl-lbl{font-size:9px;letter-spacing:2px;color:var(--td);text-transform:uppercase} .tl-f select,.tl-f input{padding:6px 8px;font-size:11px;width:auto} .tl-f.src{flex:1 1 280px} .tl-f.src select{width:100%} .tl-chk{display:inline-flex;align-items:center;gap:6px;font-size:11px;color:var(--td);cursor:pointer;white-space:nowrap;padding:6px 0} .tl-chk input{width:auto;accent-color:var(--p)} .tl-btn{font-family:'Rajdhani',sans-serif;font-size:12px;font-weight:700;letter-spacing:1px;text-transform:uppercase;cursor:pointer; border-radius:6px;padding:5px 11px;background:transparent;color:var(--td);border:1px solid rgba(255,255,255,0.12); text-decoration:none;display:inline-flex;align-items:center;justify-content:center;gap:4px;white-space:nowrap;line-height:1.3} .tl-btn:hover{color:var(--t);border-color:rgba(138, 122, 184,0.4)} .tl-btn:disabled{opacity:.4;cursor:not-allowed} .tl-btn.p{color:var(--pl);border-color:rgba(138, 122, 184,0.35);background:rgba(138, 122, 184,0.08)} .tl-btn.on{color:#fff;background:var(--p);border-color:var(--p)} .tl-head{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;align-items:baseline;margin:2px 2px 10px} .tl-h1{font-family:'Rajdhani',sans-serif;font-size:20px;font-weight:700;color:var(--t);letter-spacing:.5px;overflow-wrap:anywhere;min-width:0} .tl-meta{font-size:10px;color:var(--tm);letter-spacing:1px} .tl-grid{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:16px;align-items:start} .tl-map-card{padding:0;overflow:hidden;position:relative;margin-bottom:0} #tl-map{height:calc(100vh - 430px);min-height:380px;background:#0E0E13} #tl-legend{position:absolute;right:10px;top:10px;z-index:500;background:rgba(11, 11, 15,0.88);border:1px solid var(--b); border-radius:6px;padding:6px 10px;font-size:10px;color:var(--td);display:flex;gap:10px;flex-wrap:wrap;max-width:calc(100% - 70px)} #tl-legend span{display:inline-flex;align-items:center;gap:5px} .tl-dot{width:9px;height:9px;border-radius:50%;flex-shrink:0;display:inline-block} /* Zaman çubuğu */ .tl-bar{border-top:1px solid var(--b);background:rgba(11, 11, 15,0.96);padding:10px 14px 12px;display:flex;flex-wrap:wrap;gap:10px 16px;align-items:center} .tl-ctl{display:flex;gap:4px;align-items:center;flex-shrink:0} .tl-ctl .tl-btn{min-width:34px;padding:5px 8px} .tl-ctl select{width:auto;padding:5px 6px;font-size:11px} .tl-track{flex:1 1 360px;min-width:0;position:relative;padding-bottom:16px} .tl-track input[type=range]{width:100%;margin:0;accent-color:var(--p);display:block;height:22px;padding:0;background:transparent;border:0} .tl-ticks{position:absolute;left:8px;right:8px;top:0;height:22px;pointer-events:none} .tl-tick{position:absolute;top:3px;width:1px;height:16px;background:rgba(180, 168, 214,0.28);transform:translateX(-0.5px)} .tl-tick.cur{background:#fff;width:2px} .tl-tick.chg{background:rgba(116, 176, 149,0.55)} .tl-tlbls{position:absolute;left:8px;right:8px;top:22px;height:14px;font-size:9px;color:var(--tm);letter-spacing:.5px} .tl-tlbls span{position:absolute;transform:translateX(-50%);white-space:nowrap} .tl-tlbls span.l{transform:none}.tl-tlbls span.r{transform:translateX(-100%)} .tl-info{flex:1 1 100%;display:flex;gap:6px 14px;flex-wrap:wrap;align-items:center;font-size:11px;color:var(--td);min-width:0} .tl-info b{color:var(--t);font-weight:500} .tl-info .lbl{overflow-wrap:anywhere;min-width:0} .tl-pill{font-size:10px;padding:2px 7px;border-radius:10px;border:1px solid var(--b);white-space:nowrap} .tl-pill.n{color:#74B095;border-color:rgba(116, 176, 149,0.35)} .tl-pill.g{color:#9CA3AF;border-color:rgba(156,163,175,0.35)} .tl-pill.c{color:#C9A15A;border-color:rgba(201, 161, 90,0.35)} .tl-pill.b{color:var(--pl);border-color:rgba(138, 122, 184,0.35)} /* Yan liste */ .tl-side{padding:12px;display:flex;flex-direction:column;max-height:calc(100vh - 250px);min-height:520px} .tl-sort{display:flex;gap:4px;flex-wrap:wrap;margin-bottom:6px;align-items:center} .tl-tab{font-family:'Rajdhani',sans-serif;font-size:11px;font-weight:700;letter-spacing:1px;padding:3px 9px;border-radius:12px;cursor:pointer; border:1px solid rgba(255,255,255,0.1);background:transparent;color:var(--td)} .tl-tab.active{color:#fff;background:rgba(138, 122, 184,0.35);border-color:rgba(138, 122, 184,0.6)} .tl-cnt{font-size:10px;color:var(--tm);margin:2px 2px 4px} .tl-list{overflow-y:auto;flex:1;display:flex;flex-direction:column;gap:4px;min-height:0} .tl-dev{display:block;width:100%;text-align:left;background:var(--e);border:1px solid transparent;border-left:3px solid #6B7280;border-radius:5px; padding:6px 9px;cursor:pointer;color:var(--td);font-family:'JetBrains Mono',monospace;font-size:10px;line-height:1.5} .tl-dev:hover,.tl-dev.sel{border-color:rgba(138, 122, 184,0.45)} .tl-dev .nm{color:var(--t);font-size:12px;font-weight:500;display:flex;justify-content:space-between;gap:6px} .tl-dev .nm span:first-child{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap} .tl-dev.st-new{border-left-color:#74B095}.tl-dev.st-changed{border-left-color:#C9A15A} .tl-dev.st-steady{border-left-color:#8A7AB8}.tl-dev.st-gone{border-left-color:#9CA3AF;opacity:.6} .tl-st{font-size:9px;letter-spacing:1px} .tl-st.new{color:#74B095}.tl-st.changed{color:#C9A15A}.tl-st.steady{color:var(--pl)}.tl-st.gone{color:#9CA3AF} .tl-detail{border:1px solid rgba(138, 122, 184,0.3);background:rgba(138, 122, 184,0.06);border-radius:6px;padding:8px 10px;margin-bottom:8px;font-size:10px;color:var(--td)} .tl-detail .nm{font-family:'Rajdhani',sans-serif;font-size:15px;font-weight:700;color:var(--t);overflow-wrap:anywhere} .tl-dm{font-size:10px;color:var(--td);line-height:1.5;font-family:'JetBrains Mono',monospace} .tl-key{font-size:10px;color:var(--tm);overflow-wrap:anywhere} .tl-links{display:flex;gap:6px;margin-top:6px;flex-wrap:wrap} .tl-more{font-size:10px;color:var(--tm);text-align:center;padding:8px} /* Varlık matrisi */ .tl-mx-card{padding:12px 14px} .tl-mx-wrap{position:relative;width:100%} #tl-mx{display:block;width:100%;cursor:pointer} .tl-msg{font-size:11px;color:var(--tm);padding:6px 2px} .tl-empty{text-align:center;padding:60px 20px;color:var(--tm)} .tl-empty .t{font-family:'Rajdhani',sans-serif;letter-spacing:3px} .tl-warn{font-size:10px;color:var(--warn);margin-top:4px} /* Leaflet açılır kutu */ .tl-pop{font-family:'JetBrains Mono',monospace;font-size:10px;line-height:1.55;color:#ddd;max-width:240px} .tl-pop .nm{font-family:'Rajdhani',sans-serif;font-size:14px;font-weight:700;color:#fff;overflow-wrap:anywhere} .tl-pop .k{color:#8a8aa0;overflow-wrap:anywhere} #tl-map .tl-pop a{color:#C3B8E2} #tl-map .leaflet-popup-content-wrapper,#tl-map .leaflet-popup-tip{background:#121712;color:#ddd;border:1px solid rgba(139,92,246,0.35)} #tl-map .leaflet-popup-close-button{color:#9896AE} @media (max-width:900px){ .tl-grid{grid-template-columns:minmax(0,1fr)} #tl-map{height:50vh;min-height:260px} .tl-side{max-height:60vh;min-height:0} .tl-btn{min-height:32px} .tl-track{flex:1 1 100%} .tl-f.src{flex:1 1 100%} .tl-h1{font-size:17px} #tl-legend{gap:6px 8px;font-size:9px} } {% endblock %} {% block content %}
Timeline · scan replay · presence over time
← Cases
{% endblock %} {% block scripts %} {% endblock %}