Skip to content

Commit

Permalink
Correctly sort items.
Browse files Browse the repository at this point in the history
We'd previously sorted items by date badly; fix this by storing
the seconds-past-epoch and using that as the sort-key for nodes.

This updates #53.
  • Loading branch information
skx committed Dec 8, 2018
1 parent cb2a635 commit 877f7c3
Show file tree
Hide file tree
Showing 3 changed files with 9 additions and 7 deletions.
10 changes: 5 additions & 5 deletions data/index.template
Original file line number Diff line number Diff line change
Expand Up @@ -162,7 +162,7 @@
data-href="/node/{{.Fqdn}}">
<td>{{.Fqdn}}</td>
<td>{{.State}}</td>
<td data-sort-value="{{.At}}" title="{{.At}}">{{.Ago}}</td>
<td data-sort-value="{{.Epoch}}" title="{{.At}}">{{.Ago}}</td>
</tr>
{{end}}
</table>
Expand All @@ -183,7 +183,7 @@
<tr class="danger" data-href="/node/{{.Fqdn}}">
<td>{{.Fqdn}}</td>
<td>{{.State}}</td>
<td data-sort-value="{{.At}}" title="{{.At}}">{{.Ago}}</td>
<td data-sort-value="{{.Epoch}}" title="{{.At}}">{{.Ago}}</td>
</tr>
{{end}}
{{end}}
Expand All @@ -205,7 +205,7 @@
<tr class="info" data-href="/node/{{.Fqdn}}">
<td>{{.Fqdn}}</td>
<td>{{.State}}</td>
<td data-sort-value="{{.At}}" title="{{.At}}">{{.Ago}}</td>
<td data-sort-value="{{.Epoch}}" title="{{.At}}">{{.Ago}}</td>
</tr>
{{end}}
{{end}}
Expand All @@ -227,7 +227,7 @@
<tr data-href="/node/{{.Fqdn}}">
<td>{{.Fqdn}}</td>
<td>{{.State}}</td>
<td data-sort-value="{{.At}}" title="{{.At}}">{{.Ago}}</td>
<td data-sort-value="{{.Epoch}}" title="{{.At}}">{{.Ago}}</td>
</tr>
{{end}}
{{end}}
Expand All @@ -249,7 +249,7 @@
<tr class="warning" data-href="/node/{{.Fqdn}}">
<td>{{.Fqdn}}</td>
<td>{{.State}}</td>
<td data-sort-value="{{.At}}" title="{{.At}}">{{.Ago}}</td>
<td data-sort-value="{{.Epoch}}" title="{{.At}}">{{.Ago}}</td>
</tr>
{{end}}
{{end}}
Expand Down
2 changes: 2 additions & 0 deletions db.go
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,7 @@ type PuppetRuns struct {
Fqdn string
State string
At string
Epoch string
Ago string
Runtime string
}
Expand Down Expand Up @@ -312,6 +313,7 @@ func getIndexNodes() ([]PuppetRuns, error) {
// contain the literal time, and also the relative
// time "Ago"
//
tmp.Epoch = at
tmp.Ago = timeRelative(at)

//
Expand Down
4 changes: 2 additions & 2 deletions static.go
Original file line number Diff line number Diff line change
Expand Up @@ -48,8 +48,8 @@ func init() {
RESOURCES = append(RESOURCES, tmp)

tmp.Filename = "data/index.template"
tmp.Contents = "1f8b08000000000004ffec3aed92db3692fffd14bd70f624554c72c68e6347a654e58cb393dc39b1633bc9eda65c29906c899881001a00a5d14de981ee35eec9ae1a202952a3f1c7ded6d5d5ad7b7e8c0002fd85ee46a381f44fcf5e9cbdf9ebcbefa0742b39bf93d23f905c2d670c159bdf01484be405fd00489d7012e73fe902e1b9b02e4d42c71da08f2b741cf2921b8b6ec66ab7881e7b0400a914ea124a838b194b167c2d72ad62916b0606e58cd9521b97d70e44ae1583a48f4ff115ced85ae0a6d2c631c8b572a8dc8c6d44e1ca59816b9163b4a1c63d104a38c16564732e71761a9f1ca15f3a57d96992acf8555ea838d3da596778458d5caf92ae2379103f88bf4e726bf77df14aa838b796358cbbad445b22ba9690cd8da81c5893cf3a4ab92e30be7857a3d97a0ae167741a9fde8fbff2182f2c03a11c2e8d705bd2077ff0f8ab48ad9ff2932fbffe79f94d2e377f3d3b3f7f593dfbf9f9afd5f39fd4c9e2157ff5e2e2fb77f6f481fbea7c79f1e0bbff7878f2efeafce77779621eff58aa57cffec62037da5a6dc452a819e34aabed4ad796cdd3c47a3e1b451f63fae3d4f328b938d4ce7159dee40f7ff8596427f71fbd5b6f2f5effb8f8fee2c58ffcf9e5a2feedd7abbf5dfdf2529dfdebd347f2feeaecb79f7ea8cebf599d9f3d7bbc39ffe987fce5b3476fae3883dc686bb5114ba1668c2badb62b5d5b364f93c0fe7b64c90b7561e35ceaba58486ed0af02bfe0578914994dce4a6e5c7c6193fbf1d7f149d3cc6a55486c57e77d549af58c1dcf245a6d1c9a0f4c73db0a67cce1954b2ef89a07fe1b0b828d5085dec45a49cd0b98c1a256b9135ac17802d7ded1002049f6bfe037844a57b5e40ec195088111100a746dc0e1aaa24fd112151a4ea87a730d77251a70255750f2b5504b701a2e112be060b1e2863b845cd7ca418906ef1075cf006c1072aec02242a937b0e26a0b466f2cf16010b8416261cf508f2a57059174b0146bb4505bcf69eea908550883b993db783fa3fd95975c2db10080197c311edd6dda7f7891c199d12496a896ae84084e9fb4b3165c483fa99915da1f98a44d557245d302a9b67ddbb496d860697ea98adeaa441449d15852b150b9ac0b0c42db23a28a058c3b79e7700213b81ec8ecd5359ac4a55bc9fdc809ec5a4e3c8620eb0041e83a981f3a610207f35bb10718dace031c6d77c0d2b2b1e606326ebc973de38ec36c6fc700926728ed147e6f87135c5f1b5a6788cf0daf4ad8752211b0ebebf8196975b763f786b35015fdb16f7b9f0beeb84547943a2f22f0f4a7303a0b9635ea4d01c8787eb934ba56c59996da4c6174b7f8068bc5a3e130c27d2001bc5f06f05234346f0842930f440178bb177577afafc146875318fda21a7f18b277440a7c447fc3617faf141dd57f981c7ff1fe3ae4ee88108bfb0516381cf6f70a11487eba046f3b33df75e1860c3e7757308342e7f50a958b97e8be93483fbfddfe508c59ced59a5b36a10f6794d15cb931bb5fb04987a4d90656db6fb9811928dc80f7a071eeae06cb4f9bc9144619377d4d043df4ddae67d8baa25dc04e8756e453b9e9c039000a612bc9b7d30597167b280868039b32cf557c618118f50d88e0b5e3f925166c6fb300bbc174a7b574a23a640260a50b9247a802affa1211508e642ce66e0a9ea1dbd11bb4955656ac710aced443d67d7a7893f2d5d32bea1dc607021ba439820960d70f3204db8fc2d2e79c90f4dbbd68d7fddc4d9e349646db1e97f20fbfe58d26fdb463dc9a0f8d0901fd83c39a88f1c171751b5b3e38b2dd056e1b1844dd35f2f453d134a10d9212b934d3c5967e00a48aaf2197dcda19537c9d7103e15f54e082d7b24b9c202d4437928e095c2834d142d6a268932bc2d71bd52022aa687a6300d2ac764e2bef5d33161a6cc846e4f472296907979257160be6bdaee99eb1bce96fbbb959d2b9e86e20ca801bc123bcaab82ab098316fd04d2f716fb4ec241eb00690da8aab96196b22ade496cddf0476145f8ba54ff3d284c6052db630984ac7b028e3c6a7b715ff5f189a2641957ba6d2a410eb5e93564714ed52772a6f9549e265dc446d7ba0193fb93195aa963292b8d89b4780b496ed1032acb01891e2eb012682548a7664669017b9a95759241caed83ce5d09c66d93ccde62febaa4217bdae572b6eb66992cdd384cfd3448abd64046952cb7ecf81f04313f61218b12c6f88b0d066d5b2d608405d0cb83f29cc5862919bbc64b04257ea62c65ebe78fd8681d11267acf9d6e783a0af3ca1aada4594f95437c601a4fe73e31ab40974ab445cb4c6cba0923cc752cb02cd8cbd6e380ae7798766750c33ad7eb3809e48e021ca5c28451c42eba5cd94cc29c89cea0243c3a2adb395706c9e76ebb994dbaa24eb87ee57d4aa254dc4fca699b67063c5088e74a609e9a2afe383418366af91268a37fed0d70645041fcfd8bc09a09096a7a112d3995d79da124c4382e13d29fc64e08b1533562299d4144e1f9e54574fc09751a6f0cdc99f9fc08a9ba550de6ba60ff76d6f83d3877fa6301190756468bdc85b17a19fc1bc270a405acdff4565b67a9226d59eef1b1e18399ed99e39f43c8f2c7a8ddee128a5e982abe3196b5c907643367f2ae54d9f4ba52057bd7566d823d9bcc9fe06c131e3c5125990cee7a3e1b0434af0b1f2d3a9355b2d9bb779ff6df49a81ff6382dd9ecde65d92fee96cb7fb399bbf688fc4b731de0efd00e7210c76764c46d478b0e3998f1fa8fa412ffd5314c15329218a5acb6b4225d91e97b20b4034bfe20a61c10b5f7e68ed27241d1e5247859a766ac852fa0864534189326d0a345884824a649d1155d7cab52a50d9ae5deaf5410a41e552ca2cfab4a9cf0c3ba8abf48e9c26ae3cf6edb5e3eef68f88eae6c43439244363ba3a6e0bdd399b2abaf6e09c0da9333db505b8be160bc077107ba68005d760b0dbb54b58d0c9dd30b8be065474a2fa208ec6dcfb48845a6846c7e08fc5d15a5e1fc9861b25d4f2bd787c6868b672a50b4caeafe3bfbc2bd46ed78b47015257ccbbaf69e20e1696f4e50778cdec6e1b11285a6d5cb4e6b2c61995339ebadd8e8503d8be4dc49e2ef5314c3797f7fa46c1204dbc9def0daa89ccdd7278af6a22df51c76ad7b6e79b9d6f0db4d3f3a830e7b3532d118e3bd5ed0ed42d0c41ea4cabf7d6a1feff9a2a39fa61bdebe3ccb7dd498fda6f17573ec5809b499f2df8a32db8d11845dedb4c3884f3cf064c27dd4e473efe7679d97113de67709f64c4ddb4cf66fcd166dce9eca8217fb6dd9bb6db1d078e46df7d46f629e1b79df5d9703fda705b951db5db46f75d2afc4f6ec78725094ab502a4d5fe784b0701eb2fb05da92dc2a6147949d7e3084a3b08f5248705703048cf52c0697fd15d853ae08a5b870698c11c95935b768fbe6e6123a484a5e145cda5dcd2158604bd58d0c7f6a205b86d7006062a532b2c625f3f098cc24122dfa4f5f4b1ff735079f11f6ff694a67b6bb3d09a58a6f374f8d925f8fde379bf0a45380986df65b42aa2afbac904c37acfe0937f1944159ae604667821b8d32661f357cd4ff855e0e666d182b4d0afa5f64427f80732d5be175a0a57d6594c4f84ece555d22cb50d255f363f17eefb3a8397465f60eefe2f306c1dae31bec455152f44c2e6fff59f70ffe4f45174ffe4f4b1bfa2c335c2bfe1aafa44667baaa62a27d9cddc5b43fb8e886e246f7ddef2c5b87dd0329e74778d5f8c47e11e0b9cf9bd0b516f479318795e1e9b01f0c5d895c24ee835d67894d7c66a33ba37aab4bf23a467115490197bc61a384238408b8a17c5195d348d47a16c346aefd3020c2f303f88cde04aaff1bd0827b156e311bdc9c2ba1addeb70c2187b8f7d02d88d707909638c7d389af42583e14d2e4192c0735c38389322bfec9e97b490738b703a1de280fd7db5d439a73b62fff625e8993b67c6a36e710e744340b724974ff6096e0349023f8aa2a09bb2db79b97f8317ba4557b8f9cd3f87fa243e9aab735da11a7718eec1e88f4c72757984718c2b836b54ee59b851ecee51f7d0c8b6efa05bdb7e73d72dc8feaa96de69c12bb4283177f0e6e9b79071aa186a0525b7253d8ffae5d5f36e7148e2dac8febb81761d62a75f3b23d4b2c71a3defa98d8c57dce5e57874773419d80cf994e2a1b60efcf71061ef8ee04ba211db4a0ae727fd7efa16be8411236f733c1b8f6ca9373d25edba054d92e6bc1db8df94a8a8341a36aa2024169d3443faa360ea845bc599254aefb1f766053be9bdb6668071b844f5edeea5c46ed270488aa775195e2967bad8ceefa449e956727ee7bf030000ffffec8d04faf02a0000"
tmp.Length = 10992
tmp.Contents = "1f8b08000000000004ffec3aed92db3692fffd14bd70f624554c72c68e6347a654e58cb393dc39b1633bc9eda65c29906c899881001a00a5d14de981ee35eec9ae1a202952a3f1c75eeaeaeaca3d3f460081feee06d040fa97672fcedefcfde57750ba959cdf49e91f48ae9633868acdef00a425f2827e00a44e3889f39f7481f05c589726a1e30ed0c7153a0e79c98d453763b55b448f3d0280540a7509a5c1c58c250bbe16b956b1c835038372c66ca98dcb6b0722d78a41d2c7a7f80a676c2d705369e318e45a39546ec636a270e5acc0b5c831da50e31e08259ce032b23997383b8d4f8ed02f9dabec344956fc2a2f549c69edac33bca246ae5749d7913c881fc45f27b9b5fbbe7825549c5bcb1ac6dd56a22d115d4bc8e646540eacc9671da55c17185fbcabd16c3d85f0333a8d4fefc75f798c179681500e9746b82de9833f78fc55a4d64ff9c9975fffbcfc26979bbf9f9d9fbfac9efdfcfcd7eaf94fea64f18abf7a71f1fd3b7bfac07d75bebc78f0dd7f3c3cf97775fef3bb3c318f7f2cd5ab67ff60901b6dad366229d48c71a5d576a56bcbe669623d9f8da28f31fd71ea79945c1c6ae7b82c6ff2873ffc2cb293fb8fdeadb717af7f5c7c7ff1e247fefc7251fff6ebd53fae7e79a9cefef5e923797f75f6db4f3f54e7dfaccecf9e3dde9cfff443fef2d9a337579c416eb4b5da88a55033c69556db95ae2d9ba74960ff3db2e485bab0712e755d2c2437e8adc02ff85522456693b3921b175fd8e47efc757cd234b35a15125bebbc8f4a63cfd8f14ca2d5c6a1f9c034b7ad70c61c5eb9e482af79e0bff120d80855e84dac95d4bc80192c6a953ba1158c2770ed030d009264ff0b7e43a874554bee105c89101801a140d7061cae2afa142d51a1e184aa37d77057a201577205255f0bb504a7e112b1020e162b6eb843c875ad1c9468f00e51f70cc00621e70a2c22947a032baeb660f4c6120f06811b2416f60cf5a872551049074bb1460bb5f59ce69e8a508530983bb98df733da5f79c9d5120b0098c117e3d1dda6fd8717199c194d62896ae94a88e0f4493b6bc185f4939a59a1fd8149da542557342d906adbb74d6b890d4cf34b55f4ac125126456349c542e5b22e30086d8f882a1630eee49dc3094ce07a20b357d76812976e25f72327b06b39f11882ac0304a1eb607ee884091ccc6fc51e60683b0f70b4dd014bcbc69a1bc8b8f151f68c3b0eb3bd1f03489ea1b453f8bd1d4e707d6dc8ce109f1b5e95b0eb442260d7d7f133d2ea6ec7ee0d67a12afa63dff63e17dc718b8e28755144e0e94f6174163c6bd49b0290f1fc726974ad8a332db599c2e86ef10d168b47c36184fb400278bf0ce0a56868de1084261f8802f0762feaee5e5f838d0ea730fa4535f13064ef8814f888fe86c3fe59293aaa7f9a1c7ff3f13ae4ee88108bfb0516381cf6cf0a11487eba046f3b37df75e9861c3e7757308342e7f50a958b97e8be93483fbfddfe508c59ced59a5b36a10f67b4a3b9726376bf60930e49b30cacb6df72033350b8011f41e3dc5d0dcc4f8bc9144619377d4d043df4c3aee7d8baa255c04e875ee4b772d341700014c256926fa70b2e2df65010d00236659eabf8c20231ea1b10c16bc7f34b2cd8de67017683e94e6be94475c804c04a17248f50055ef52522a03d92b198bb2978866e476fd0565a59b1c62938530f59f7dbc39b94af9e5e51ef303f10d820cd114c00bb7e9221d87e14963ee784a4dfee65bbeee76ef2a4f1345af6b8947ff8256f34e96f3bc6adfbd09890d03f38acc9181f1c57b7b9e58323db55e0b68141d45d234f7f2b9a26b440d2462ecd74b1a51f00a9e26bc825b776c6145f67dc40f81715b8e0b5ec364e9016a21b49c7042e149a68216b51b49b2bc2d71bd52022aa687a6300d2ac764e2b1f5d33161a6cc846e4f472296905979257160be6a3aee99eb1bce96fbbb959d2b9e86e20ca801bc123bcaab82ab09831efd04d2f716fb4ec241eb00690da8aab96196b22ade496cddf0476145f8ba5dfe6a5098d0b5a6c6130958e6151c68ddfde56fc7f61689a0455ee994a9342ac7b4db28e285a53772a6f9549e265dc446d7ba0193fb97195aa963292b8d8bb4780b496ed1072ac608c48f1f50013412a453b3233c88bdcd4ab2c120e576c9e72684eb36c9e66f3977555a18b5ed7ab1537db34c9e669c2e76922c55e328234a965bfe740f8a10b7b098c589637445868b36a596b04a02e06dc9f14662cb1c84d5e3258a12b7531632f5fbc7ec3c0688933d67cebf341d0579e5055ed22daf95437c601a4fe73131ab4087456222e5ae76550499e63a9658166c65e371c85f3bc43b33a8699acdf18d013093c44990ba5884368a3b49992390599535d626858b475b6128ecdd3ce9e4bb9ad4af27ee87e45ad5ad244cc6fba690b372c4670a4334d48177d1d1f0c1a347b8d3451bc8987be362823f87cc6e64d0285b43c0d9598ceedcad396601a36183e92c24f06be58316325924b4de1f4e14975f5047c19650adf9cfcf509acb8590ae5a366fa70dff63e387df8574a1301594786ec45d1ba08fd0ce63d5100d26afe2f2ab3d59334a9f67cdf88c0c8f1ccf6dca11779e4d16bf401475b9a2eb93a9eb12604693564f3a752de8cb9540a0ad55b67863592cd9bdddf203966bc58220bd2f9fd6838ec90127caefc746acd52cbe6edbeff367acdc0ff31c16ecd66f36e93fee96cb7eb399bbf688fc4b731de0efd00e7210d767e4c4ed444b0e399cf1fa8fa492ffd4b14c15329218a5acf6b5225f91e97b24b4034bfe20a61c10b5f7e68fd276c3a3ca48e0a35edd4b04be923904d0525cab429d060110a2a917546545d2bd7aa4065bb76a9d7075b082a97d2cea24f9bfaccb083ba4a1fc869e2ca63df5e3bee6eff88a86e4e4c93433234a6abe3b6d09db3a9a26b0fced9903ad3535b80eb6bb1007c07b1670a58080d06bb5d6bc2824eee86c1f535a0a213d5077134eede4722d442333a067f2c8ed6f3fa4836dc28a196efc5e35343b3942b5d60727d1dffed5da176bb5e3e0a90ba62de7d4d13776058d2971fe035b3bb6d44a068b571d19acb1a6754cef8aed279b9dbb17006f35d4f1db1707d1d3f5dea63c86e5af8fa46cd204dbcabef7daa49ce9d457c6035c9ef686cb5e6ed8567175e0305f5822accf91c574b84e371757b0c758621489d69f5dec6d4ff6b6fa5703fac7a7d9c07b7ebe95117eeb2cba7f87033e9b3137fb413371aa3fc7b9b1787a4fed9878f66e16e8376dc8bf75bb94ff2e36eda674ffe684fee7476d4973fbbef51f7ed8e064773f07e77f62949b89df5d9773fda775b951d75dd46f7ddb6f8b32b1f562868db1520adf6a75d3a17587f9fed4a6d1136a5c84bba2d4750da41282f392c8083417aa5024efb7bef2a940557dc3a34c00ce6a89cdcb27bf4750b1b21252c0d2f6a2ee5966e3424e8c5823eb6f72ec06d83333050995a6111fb724a60140ee2b1894efad8ff3928c4f88f377b4ad33dbd59684d2cd3f13afcec36fbfdd37abf2845380986df65b42aa2afbac904c3f2cfe0937f2844059be640667821b8d32661f357cd4ff855e0e6660d83b4d02fadf64427f813996a9f0f2d852beb2ca61743f6f22a694c6d430598cdcf85fbbecee0a5d11798bbff0b0c5b876b8c2f7155c50b91b0f97ffd27dc3f397d14dd3f397dec6fec708df06fb8aa3e91d99eaaa9e8497e33f7ded03e2ba20bca5b5fbb7c316edfb78c27ddd5e317e351b8d602677eefb2d4dbd124469e97c766007c3176a5b0137a9c351ee5b5b1da8cee8d2aedaf0ce99504d567c69eb1068e100ed0a2e2457146f74ee351a8228ddaebb500c3fbcc0f6233b8d26b7c2fc249acd578444fb4b0ae46f73a9c30c6dedb9f0076235c5ec218639f8e267dc96078b14b9024f01c170ecea4c82fbbd7262de4dc229c4e8738607f7d2d75cee9cad83f85097ae6ce99f1a833ce816e08e8d2e4f2c9bed8d04092c08fa228e8e2ec765eeedfe0852ed5156e7ef3afa33e898fe6265d57a8c61d867b30fa23935c5d1e611ce3cae01a957b162e18bb6bd53d34b2ed3be812b7dfdc7506d9dfdcd2b32d78851625e60ede3cfd16324e0544ada0e4b6a4d752bfbc7ade198724ae8dec3f2368ed103bfdda19a1963dd6e8b54f6d64bce22e2fc7a3bba3c9c06728a6140fa576e0bf870c7b77045f128dd85652383fe9f7d3b7f0258c18459be3d978644bbde92969d71934499a8377e07e53a2a24a6958a882905874d20ce98f82ab136e15679628bdc7df1b0b76d27b6dcd00e370a7eadbddc389dda4e190144f7619de3067bad8ceefa449e956727ee7bf030000ffff8d9d2766ff2a0000"
tmp.Length = 11007
RESOURCES = append(RESOURCES, tmp)

tmp.Filename = "data/jquery.tablesorter.min.js"
Expand Down

0 comments on commit 877f7c3

Please sign in to comment.