on way to rendering dynamics

This commit is contained in:
john stone 2014-02-21 12:02:31 +01:00
parent 715ccc0f22
commit dd2469778b
2 changed files with 53 additions and 0 deletions

28
src/DynamicObjects.cc Normal file
View File

@ -0,0 +1,28 @@
#include "DynamicObjects.H"
//add parameter for ordering??
std::string DynamicObjects::render_object_list(){
std::string output = u8R"FOO(
<ul id="down">
)FOO";
for (auto it : this->_themap){
output += u8"<li>\n";
output += u8"<a href=\"" + it.second->get_loadurl() + u8"\">";
output += it.second->get_fname();
output += u8"</a> <span class=\"size\">";
output += it.second->bytesize_string();
output += u8"</span>\n</li>";
}
output += u8R"HUENERBLUBBE(
</ul>
)HUENERBLUBBE";
return output;
}
//<li>
//<a href="/file/23/Foobar.jpg">Foobar.jpg</a> <span class="size">80 KB</span>
//<span class="stats"><b>42×</b> seit 1.1.1970 0:00 Uhr</span> //<--- TODO
//</li>

View File

@ -2,6 +2,7 @@
#include <string>
#include <ctime>
#include <cassert>
#include "Sicmaster.H"
@ -26,6 +27,7 @@ class Sicobject
{
}
~Sicobject();
std::string get_loadurl(){
std::string retval = "files/"; //TODO add master.get_baseurl()
@ -33,8 +35,31 @@ class Sicobject
return retval;
}
std::string get_fname()
{
return _fname;
}
size_t get_size() { return _size;}
std::string bytesize_string()
{
int i = 0;
size_t size = _size;
const char* units[] = {"B", "kB", "MB", "GB", "TB", "PB", "EB", "ZB", "YB"};
while (size > 1024) {
size /= 1024;
i++;
}
assert(i < 9);
std::string output = "" ;//FIXME... muss mittagessen gehen
// do this c++11 style: sprintf(buf, "%.*f %s", i, size, units[i]);
return output;
}
private:
size_t _size;
unsigned int _idnum;