From ae898e44dfb1d530f78169c9854395515b450882 Mon Sep 17 00:00:00 2001
From: Georg Hopp
Date: Thu, 28 Nov 2013 23:49:29 +0000
Subject: [PATCH] prepare release 0.1.8
---
ChangeLog | 355 +++++++++++++++++++++++++++++
Makefile.am | 6 +-
NEWS | 14 ++
README | 32 +--
README.md | 92 ++++----
assets/html/_documentation.html.in | 79 +++++++
assets/html/_download.html | 1 +
assets/html/_main.html | 5 +
assets/image/gplv3-127x51.png | Bin 0 -> 3471 bytes
assets/js/init.js | 4 +-
assets/style/common.css | 8 +
assets/style/taskrambler.css | 4 +
docs/taskrambler-0.1.8.ebuild | 13 ++
src/taskrambler.c | 2 +-
14 files changed, 538 insertions(+), 77 deletions(-)
mode change 100644 => 120000 README
create mode 100644 assets/image/gplv3-127x51.png
create mode 100644 docs/taskrambler-0.1.8.ebuild
diff --git a/ChangeLog b/ChangeLog
index 5a1d41f..21d4ad6 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,358 @@
+2013-11-26 Georg Hopp georg@steffers.org
+ * M assets/js/application.js:
+ * M assets/js/session.js:
+ update user informations when session timeouts
+ * M src/http/parser/p_post_vars.c:
+ fix urldecode of post vars. I can't urldecode the whole
+ body and then start splitting it into values because the
+ urldecode can add reserved characters. I have to urldecode
+ each value by it's own. TODO: check if the keys have to be
+ urldecoded too.
+ * M include/utils/http.h:
+ * M src/http/parser/p_post_vars.c:
+ * M src/utils/http.c:
+ urldecode post values
+ * M src/taskrambler.c:
+ more valgrind indicated fixes
+
+2013-11-25 Georg Hopp georg@steffers.org
+ * M src/http/worker/get_asset.c:
+ reduce expire for assets to 12 hours...currently I expect
+ changes even more often. At the end this is another condidate
+ for the configuration file.
+ * M src/application/controller/signup/create.c:
+ * M src/application/controller/user/create.c:
+ * M src/application/controller/user/update.c:
+ * M src/application/create_user.c:
+ * M src/application/login.c:
+ * M src/application/update_password.c:
+ * M src/application/update_user.c:
+ * M src/config/config.c:
+ * M src/config/value.c:
+ fixed various memory management issues detected with valgrind
+
+2013-11-24 Georg Hopp georg@steffers.org
+ * D assets/js/session.orig.js:
+ remove obsolete file
+ * M Makefile.am:
+ * M assets/html/_menu.html:
+ * A assets/html/_myaccount.html:
+ * M assets/html/layout.html:
+ * M assets/js/application.js:
+ * M assets/js/init.js:
+ * M assets/js/menu.js:
+ * M assets/style/common.css:
+ * M assets/style/taskrambler.css:
+ * M include/application/application.h:
+ * M src/application/Makefile.am:
+ * A src/application/controller/_get_credential_from_args.c:
+ * A src/application/controller/_get_user_from_args.c:
+ * M src/application/controller/_process_user_create_args.c:
+ * A src/application/controller/_update_user_from_args.c:
+ * A src/application/controller/user/update.c:
+ * A src/application/update_user.c:
+ * M src/http/worker/process.c:
+ * M src/router/route.c:
+ basic user update functionality
+ * M Makefile.am:
+ add missing javascript files and optimize symlink creation
+ * M src/storage/storage.c:
+ create database files world read-/writable
+ * M Makefile.am:
+ install working directories as world read-/writeable and
+ symlink layout instead of installing the files.
+
+2013-11-11 Georg Hopp georg@steffers.org
+ * M assets/html/layout.html:
+ * A assets/js/application.js:
+ * M assets/js/init.js:
+ * A assets/js/menu.js:
+ * M assets/js/session.js:
+ * A assets/js/session.orig.js:
+ * A assets/js/user.js:
+ some work on the javascript...
+ still I think it's not very good, but better than before.
+
+2013-11-10 Georg Hopp georg@steffers.org
+ * M Makefile.am:
+ * M assets/html/layout.html:
+ * A assets/js/jquery.ui.touch-punch.min.js:
+ add jQuery ui touch-punch for draggable support on
+ mobile devices. Thanks to Dave Furfero.
+ * M assets/js/session.js:
+ * M include/user.h:
+ * M src/application/controller/_process_user_create_args.c:
+ * M src/application/controller/currentuser/read.c:
+ * M src/application/login.c:
+ * M src/user/user.c:
+ add username to user class. This will contain the common
+ name (cn) of an ldap authenticated user and the email
+ address of an otherwise authenticated user. This is done
+ to be able to have a good way to store an application user
+ for ldap authenticated users.
+ * M include/application/application.h:
+ * M src/application/application.c:
+ * M src/taskrambler.c:
+ use the new authentication container
+ * M include/auth/auth.h:
+ * M src/auth/Makefile.am:
+ * A src/auth/auth.c:
+ * A src/auth/create.c:
+ created an authentication container. This could initialize
+ the needed authentications and then be injected as a single
+ object into the application class
+ * M include/class/interface/class.h:
+ * M src/class/interface/i_class.c:
+ add function to create an object with a va_list pointer
+ instead of its argument list. Obviously the va_list must
+ contain the correct values for the class constructor.
+
+2013-11-09 Georg Hopp georg@steffers.org
+ * M assets/html/_author.html:
+ * M assets/html/_login.html:
+ * M assets/html/_signup.html:
+ * M assets/html/layout.html:
+ * M assets/js/init.js:
+ * M assets/style/common.css:
+ * M assets/style/taskrambler.css:
+ make signup and login popup visually more fitting to the
+ rest of the pages.
+
+2013-11-08 Georg Hopp georg@steffers.org
+ * M assets/html/layout.html:
+ * M assets/js/init.js:
+ * M assets/style/common.css:
+ make login and signup div draggable and cast shadows
+ * M Makefile.am:
+ install jqeury ui files
+ * A assets/js/jquery-ui-1.10.3.min.js:
+ * A assets/js/jquery-ui.js:
+ * A assets/style/images/animated-overlay.gif:
+ * A assets/style/images/ui-bg_flat_0_aaaaaa_40x100.png:
+ * A assets/style/images/ui-bg_flat_75_ffffff_40x100.png:
+ * A assets/style/images/ui-bg_glass_55_fbf9ee_1x400.png:
+ * A assets/style/images/ui-bg_glass_65_ffffff_1x400.png:
+ * A assets/style/images/ui-bg_glass_75_dadada_1x400.png:
+ * A assets/style/images/ui-bg_glass_75_e6e6e6_1x400.png:
+ * A assets/style/images/ui-bg_glass_95_fef1ec_1x400.png:
+ * A assets/style/images/ui-bg_highlight-soft_75_cccccc_1x100.png:
+ * A assets/style/images/ui-icons_222222_256x240.png:
+ * A assets/style/images/ui-icons_2e83ff_256x240.png:
+ * A assets/style/images/ui-icons_454545_256x240.png:
+ * A assets/style/images/ui-icons_888888_256x240.png:
+ * A assets/style/images/ui-icons_cd0a0a_256x240.png:
+ * A assets/style/jquery-ui-1.10.3.min.css:
+ * A assets/style/jquery-ui.css:
+ add jquery ui for nice ui effects
+ * A docs/ups-cookie_disclosure.pdf:
+ * M TODO:
+ update TODO
+
+2013-11-07 Georg Hopp georg@steffers.org
+ * M assets/html/_footer.html:
+ * M assets/js/init.js:
+ * M include/application/application.h:
+ * M src/application/Makefile.am:
+ * M src/application/application.c:
+ * A src/application/controller/loc/read.c:
+ display lines of code in page footer
+ * M configure.ac:
+ add lines of code to config.h ...
+ make me able to display these in the application
+ * M Makefile.am:
+ add make target to measure lines of code
+ * M include/application/application.h:
+ * M src/application/Makefile.am:
+ * M src/application/create_user.c:
+ * D src/application/signup.c:
+ remove no longer used application signup method
+ * M .gitignore:
+ * M Makefile.am:
+ create make target for ctags file and ignore the generated
+ file with git
+
+2013-11-06 Georg Hopp georg@steffers.org
+ * M assets/js/init.js:
+ * M include/application/application.h:
+ * M src/application/Makefile.am:
+ * A src/application/controller/_process_user_create_args.c:
+ * A src/application/controller/_validate_email.c:
+ * A src/application/controller/_validate_password.c:
+ * A src/application/controller/_validate_password_repeat.c:
+ * A src/application/controller/signup/create.c:
+ * M src/application/controller/user/create.c:
+ * A src/application/controller/user/read.c:
+ * A src/application/create_user.c:
+ * A src/application/get_user.c:
+ * A src/application/update_password.c:
+ * M src/router/route.c:
+ generalise user handling more so that not only signup
+ and login is possible but also password or userdata changes
+ and further administration.
+ * M include/storage/storage.h:
+ * M src/storage/Makefile.am:
+ * A src/storage/delete.c:
+ add storage delete functionality
+ * M src/testers/uuid.c:
+ test code for zeroUuid on stack
+ * M include/user.h:
+ remove unnecessary stuff in user declaration
+ * M include/permission.h:
+ * M include/role.h:
+ some more stuff in rbac files...
+ still nothing really useful, but finally I have more or
+ less an idea how to implement it
+ * M include/uuid.h:
+ * M src/uuid/uuid.c:
+ add zero uuid instance
+ * M include/class/class.h:
+ add makros to create an instance of a class on the
+ stack (ment for global constant instances that never change,
+ eg. defined NULL values)
+
+2013-11-05 Georg Hopp georg@steffers.org
+ * M include/application/application.h:
+ * M include/auth/interface/auth.h:
+ * A include/interface/indexable.h:
+ * A include/interface/serializable.h:
+ * M src/Makefile.am:
+ * M src/application/application.c:
+ * M src/application/login.c:
+ * M src/application/session_cleanup.c:
+ * M src/application/signup.c:
+ * M src/auth/interface/auth.c:
+ * M src/auth/ldap.c:
+ * M src/auth/storage/storage.c:
+ * A src/interface/indexable.c:
+ * A src/interface/serializable.c:
+ * M src/taskrambler.c:
+ * M src/user/Makefile.am:
+ * D src/user/load.c:
+ * D src/user/save.c:
+ * M src/user/user.c:
+ remove specialized load and save from user, add serializable
+ and indexable interface and make user utilize both and store
+ a user and its credentials keyed by its uuid
+
+2013-10-27 Georg Hopp georg@steffers.org
+ * M src/uuid/version3.c:
+ * M src/uuid/version5.c:
+ delete temporary uuid data structures.
+ * M src/server/server.c:
+ NSA makes me paranoid ...
+ try to get best supported cipher of the used browser and
+ don't use RC4 at all
+
+2013-10-25 Georg Hopp georg@steffers.org
+ * M src/testers/uuid.c:
+ fix and test uuidCompare
+ * M configure.ac:
+ * M include/session.h
+ * M include/user.h
+ * M include/uuid.h
+ * M src/Makefile.am
+ * M src/router/route.c
+ * M src/testers/uuid.c
+ * M src/user/save.c
+ * A src/uuid/Makefile.am:
+ * A src/uuid/_format3or5.c:
+ * A src/uuid/compare.c:
+ * A src/uuid/parse.c:
+ * A src/uuid/unparse.c:
+ * A src/uuid/uuid.c:
+ * A src/uuid/version1.c:
+ * A src/uuid/version3.c:
+ * A src/uuid/version5.c:
+ add code to generate uuid version 3 and 5.
+ With this we can generate the same uuid for a given name
+ all the time
+ * A include/permission.h:
+ * D include/rbac/permission.h:
+ * D include/rbac/role.h:
+ * A include/role.h:
+ some more work on rbac
+
+2013-10-23 Georg Hopp georg@steffers.org
+ * M assets/js/init.js:
+ remove old deactivated json request for logout
+ * A include/uuid.h:
+ start of an own uuid class. This will simply wrap existing
+ code for random uuids and add code to generate uuid for
+ namespace unique items.
+ * M assets/js/init.js:
+ * M configure.ac:
+ * M include/application/adapter/http.h:
+ * M include/http/request.h:
+ * A include/router.h:
+ * M src/Makefile.am:
+ * M src/application/Makefile.am:
+ * M src/application/adapter/http/http.c:
+ * M src/application/adapter/http/update.c:
+ * A src/application/controller/authenticate/create.c:
+ * A src/application/controller/authenticate/delete.c:
+ * A src/application/controller/currentuser/read.c:
+ * A src/application/controller/randval/read.c:
+ * A src/application/controller/sessinfo/read.c:
+ * A src/application/controller/user/create.c:
+ * A src/application/controller/version/read.c:
+ * M src/http/Makefile.am:
+ * M src/http/request.c:
+ * A src/http/request/get_method_id.c:
+ * D src/http/request/has_valid_method.c:
+ * A src/router/Makefile.am:
+ * A src/router/route.c:
+ * A src/router/router.c:
+ * M src/taskrambler.c:
+ added a generic router. This is a REST router that maps
+ urls to specific functions which it tries to find via dlsym.
+ That way the only thing to do to get a new REST
+ functionality is to add a function that fits into the
+ namesheme. All existing functionality is moved accordingly
+ * M src/server/server.c:
+ remove not used variable
+ * M src/server/run.c:
+ change indenting
+
+2013-10-22 Georg Hopp georg@steffers.org
+ * M include/rbac/role.h:
+ small change to rbac role ...
+ this still is not really even started
+ * M TODO:
+ add note and thoughts about a distributed storage system
+
+2013-10-16 Georg Hopp georg@steffers.org
+ * M src/server/server.c:
+ if I have a socketNonblock method I should better use it. :D
+ * D include/cbufpool.h:
+ * D src/binarytree.c:
+ * D src/cbufpool.c:
+ * D src/configtest.c:
+ * D src/hash.c:
+ * D src/mmapfiletest.c:
+ * D src/mmapfiletest2.c:
+ * D src/rbtree.c:
+ * D src/rbtree2.c:
+ * D src/usertest.c:
+ * D src/uuid.c:
+ remove the moved files... :D
+ * A src/testers/binarytree.c:
+ * A src/testers/configtest.c:
+ * A src/testers/hash.c:
+ * A src/testers/mmapfiletest.c:
+ * A src/testers/mmapfiletest2.c:
+ * A src/testers/rbtree.c:
+ * A src/testers/rbtree2.c:
+ * A src/testers/usertest.c:
+ * A src/testers/uuid.c:
+ move test programs in separate folder
+
+2013-10-13 Georg Hopp georg@steffers.org
+ * M include/http/response.h:
+ * M src/http/response/asset.c:
+ * M src/http/worker/get_asset.c:
+ add expires header for static assets (right now 1 week
+ in the future)
+
2013-10-09 Georg Hopp georg@steffers.org
* A config/taskrambler.conf.in:
add forgotten taskramble.conf.in
diff --git a/Makefile.am b/Makefile.am
index 88513cb..aba8dac 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -1,10 +1,5 @@
ACLOCAL_AMFLAGS = -I m4
-#bin_PROGRAMS = create_token
-#create_token_SOURCES = base64.c createToken.c
-#create_token_LDADD = src/libtoken.la $(LIBOBJS)
-#create_token_CFLAGS = -Wall -I include
-
EXTRA_DIST = include certs assets
myetc_DATA = config/mime.types \
@@ -43,6 +38,7 @@ nobase_trdata_DATA = assets/html/example.html \
assets/image/rambler-border-tr.jpg \
assets/image/rambler-logo-small.jpg \
assets/image/rambler-logo2-small.jpg \
+ assets/image/gplv3-127x51.png \
assets/js/application.js \
assets/js/init.js \
assets/js/jquery.js \
diff --git a/NEWS b/NEWS
index e69de29..03b3905 100644
--- a/NEWS
+++ b/NEWS
@@ -0,0 +1,14 @@
+2013-11-28
+
+I am about to make a new release 0.1.8 of this. It took a long time since
+the last release. Originally this was ment to implement some kind of RBAC
+but now it improves user management to have resources (users) where
+RBAC could be used on.
+
+So, in this version you got improved user management and an improved UI.
+
+I have new hardware and with this I got really impressive result from
+ApacheBench. I can handle the simple /version/ request about 40000 times
+a second on a new Core I5. This is more than double of the result on my
+old Core2Duo, and we are still single threaded.
+
diff --git a/README b/README
deleted file mode 100644
index a122cb3..0000000
--- a/README
+++ /dev/null
@@ -1,31 +0,0 @@
-$Id$
-
-Actually this is some kind of server toolkit, also containing
-a class and interface toolkit for C.
-I use a gcc preprocessor extension to use empty variadoc
-argument lists so actually this is gcc only code.
-
-This should become a server that has a dynamic time-sliced part
-that updates an internal state all the time.
-Clients might connect as they want and get some information
-from the server.
-The server should scale in two manners.
-New instances should be able to handle connection and get
-updates about the computed state.
-Additionally new instances might hold their own state which
-all other instances might update.
-
-In a first run the state might be something simple as a
-matrix where every field hold a unique value. e.g.
-
- -------------
- |1|4|a|j|k|9|
- -------------
- |1|4|a|j|k|9|
- -------------
- |1|4|a|j|k|9|
- -------------
- |1|4|a|j|k|9|
- -------------
-
-suggestion for timing: sigsuspend
diff --git a/README b/README
new file mode 120000
index 0000000..42061c0
--- /dev/null
+++ b/README
@@ -0,0 +1 @@
+README.md
\ No newline at end of file
diff --git a/README.md b/README.md
index 15118a7..e87fd35 100644
--- a/README.md
+++ b/README.md
@@ -8,24 +8,29 @@ need any third party webserver to work.
The backend is written completely in C while the frontend will be
JavaScript, CSS and HTML.
-When this is finished users will be able to connect to the server
+Users will be able to connect to the server
via their browsers, manage their tasks there and specify policies
who else might see their tasks, track the time spend on a specific
task, attach tasks to projects, getting reports about their work done,
etc.
-Right now for the taskmanagement stuff I think of a similar approach
+For the taskmanagement stuff I think of a similar approach
as [taskwarrior](http://taskwarrior.org/projects/show/taskwarrior) is going.
This is an amazing tool and I really enjoy using it.
I started this as an experiment to implement an HTTP server, then I learned
about taskwarrior and thought, wouldn't it be great to have this
functionality in a multiuser environment.
-Right now, it is a single process HTTP server implementation that performs
-not to bad.
+Right now, this is a single process HTTP server implementation that performs
+not to bad. And some application logic for user management. Every connection
+is associated with a session and user can register, login and modify their
+user data.
-In the next version user will be able to create tasks and share them at
-least on a basic level.
+In the nearer future an role based access control system will be added.
+Users will be able to add tasts, (for now just a text and maybe a date or
+something) and they should be able to control who else might see a task.
+
+If this works reliable I will announce version 0.2.
The main development page can be found
[here](http://redmine.weird-web-workers.org/projects/taskrambler).
@@ -34,7 +39,7 @@ INSTALLATION
------------
This can be installed via the usual configure, make, make install
-cycle.
+cycle. For gentoo users am ebuild is added under docs.
### API DOC
@@ -47,52 +52,66 @@ neccessary. A patch is included under docs.
gcov and lcov are needed to build these.
-*make coverage-html* creates the converage reports.
+The source has to be configured with *configure --enable-gcov*.
+*make coverage-html* creates the converage reports then.
-### PLAY AROUND
-Any asset under assets could be exchanged. It should be possible to
-change the main.html there and put additionally html files and images
-under assets and everything should be deliverd.
+USAGE
+-----
-Anyway, there are a few rules.
+### RUNNING
-* html assets will always be loaded from assets/html.
-* all other assets are loaded directly from the assets directory.
+Simply start the installed executable.
+This will usually be found under */usr/local/bin/taskrambler* after
+successfull build and installation.
-So, right now this can be used as a HTTP server for static content
-and without virtual hosts support.
+When installed with the ebuild the executable will be */usr/bin/taskrambler*.
+After the executable is stared you should be able to see the staskrambler
+user interface with your browser by openening *http://localhost:11212/*.
-USAGE
------
+In the upper right corner you can see session and user related information.
-### RUNNING
+### CONFIGURATION
-Simply start the executable *src/taskrambler* after successfull build.
-Currently this will stay in the foreground and does logging via syslog.
+A first configuration file is installed in your etc folder under
+*taskrambler/taskrambler.conf*. The syntax of that file is described in it.
-### PORT
+Currently there are only 5 settings that can be configured.
-The server will listen on port 11212 for HTTP requests and on port 11213
-for SSL requerst.
+* ldap_base: The base for the ldap Distinguished Name (DN) for user lookups.
+* ldap_host: The ldap server to connect to.
+* assets_dir: Defines where taskrambler will find its assets.
+* runtime_dir: The place where the user and credential database files are
+ stored
+* port: The port taskrambler should run on.
-You can use telnet or simply start a browser and connect on localhost:11212.
+### PORT
+
+Taskrambler will always connect to the port specified in the config for
+HTTP connections.
-This should show up a very simplistic page.
-It should eneable you to start a session, get values from the server
-or login.
+A second socket will be opened on port+1 for SSL connections.
### LOGIN
-You can't use the login without changing the code. It's implemented using
-ldap and currently not configurable. You have to change the configuration
-in the code and compile again.
+Every user that can be authenticated either via LDAP or via taskramblers
+own database can login via the login link in the menu.
+
+### SIGNUP
+
+It is possible to create a user account by clicking the signup link.
+After a successfull signup you will be automatically logged in.
+
+### CHANGE USER DATA ###
+
+After a successfull login you have the ability to see your current account
+informations and modify them via "my account"
TESTING
-------
-This comes with an incomplete unit test suite.
+This comes with the start of a unit test suite.
You can use *make test* to build and run the existent tests.
### REQUIREMENTS
@@ -105,10 +124,5 @@ CONTRIBUTION
I would really like to see some people possibly interested in this stuff.
I think it contains some really interesting ideas.
-Well, sadly i have to say that this is a spare time project. Documentation
-is sparse and Tests too.
-
If you like to contribute anyway, make a fork, do your changes and generate
-a pull request.
-
-I will look at these as soon as possible.
+a pull request. Or simply contact me on georg@steffers.org.
diff --git a/assets/html/_documentation.html.in b/assets/html/_documentation.html.in
index a77e585..05f9527 100644
--- a/assets/html/_documentation.html.in
+++ b/assets/html/_documentation.html.in
@@ -23,6 +23,85 @@
here.
+Version 0.1.8
+
+This one took longer than expected and still does not contain what it
+initially was meant to.
+
+My intention was to have at least some basic first RBAC in here, but
+after some thinking about it I realized that it is difficult and meaningless
+to create something as long as there is nothing to manage.
+
+Now a lot of work regarding the user management is done. Especially
+there is the possibility to create user, modify them and in theory remove
+them again. A lot of changes toop place and its best to categorize them.
+
+UI/client
+
+
+ - Added jQueryUi and related libs
+ - Visually improve all popups (signup, login, my account(NEW))
+ - Reorganize the javascript code.
+ - Display the lines of C code at the bottom of each page.
+ - New menu entry and popup "my account". Users can see and modify
+ their data there.
+
+
+build system
+
+
+ - Added make target to create a ctags file for the project.
+ - Added code to get the current number of lines of C code.
+ - Install database files and ddirectories as world writable.
+ This is done because I notices that a fresh installation segfaulted
+ because it can't open the database files. (These segfaults should be
+ fixed also.)
+
- The layout symlinks are no longer copied. Instead symlinks are
+ created in the installation dir.
+
+
+backend/server
+
+
+ - Added a little code and some comments about RBAC.
+ - Created a Uuid class capable of handling Uuid Version1/3/5.
+ - Added a serializable and indexable interface
+ - Users now have a username field which is filled with the email
+ address if the user registered directly in our application and with
+ the CN if the user is authenticated via LDAP.
+ - Now LDAP authenticated users get an entry in our database too.
+ This gives them the possibility to change some information.
+ - Users no longer can store themself. They implement the
+ serializable and indexable interfaces and an external function uses
+ these to finally store the user.
+ - Users are now able to change their firstname, surename and
+ email address after the have been logged in/authenticated.
+ - Added a generic router that converts request URIs into identifier
+ for dlsym and then call this function.
+ - All post data is now urldecoded.
+ - All Authentication methods are not organized in an authentication
+ container. This will try every registered authenticator to authenticate
+ the user.
+ - The class system now allows stack stored const instances.
-
+
- Instances can now be created via a va_list additionally to
+ directly given the function arguments.
+ - All static assets are not delivered with an expire header, it
+ is currently set to 12 hours.
+ - No RC4 is accepted for SSL connectiones...hello NSA.
+ - The storage layer not allows the deletion of entries.
+
+
+
+Version 0.1.7
+
+
+ - some reusable parts are now build as shared libraries
+ - make install does what it should
+ - generalize json responses
+ - add support for a first basic configuration file
+ - huge amount of changes in the build system
+
+
Version 0.1.6
This is a bugfix release. No obvious visible changes at the UI.
diff --git a/assets/html/_download.html b/assets/html/_download.html
index 63cb9ef..56be7d1 100644
--- a/assets/html/_download.html
+++ b/assets/html/_download.html
@@ -24,6 +24,7 @@ Currently the following tarballs are available:
taskrambler-0.1.5
taskrambler-0.1.6
taskrambler-0.1.7
+ taskrambler-0.1.8
Project page
diff --git a/assets/html/_main.html b/assets/html/_main.html
index f45692c..39a3da1 100644
--- a/assets/html/_main.html
+++ b/assets/html/_main.html
@@ -18,6 +18,11 @@
What is taskrambler
+Latest news/changes.
+
+You can see the latest news/changes
+here.
+
What is it right now.
diff --git a/assets/image/gplv3-127x51.png b/assets/image/gplv3-127x51.png
new file mode 100644
index 0000000000000000000000000000000000000000..3e9136e626683ac152b73bc8fffcb15d1806091a
GIT binary patch
literal 3471
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
literal 0
HcmV?d00001
diff --git a/assets/js/init.js b/assets/js/init.js
index b1ce3ab..33d9d02 100644
--- a/assets/js/init.js
+++ b/assets/js/init.js
@@ -24,7 +24,9 @@ $(document).ready(function() {
}
$("#title").load("/_title.html");
- $("#main").load(asset);
+ $("#main").load(asset, function() {
+ $("#main").append('
')
+ });
menu.init(application);
$("#statusline").load("/_statusline.html", function() {
diff --git a/assets/style/common.css b/assets/style/common.css
index 15c4e90..79d4c4c 100644
--- a/assets/style/common.css
+++ b/assets/style/common.css
@@ -45,6 +45,14 @@ div#login-container {
z-index: 20;
}
+#gplv3 {
+ opacity: 0.3;
+ filter: alpha(opacity=30);
+ position: absolute;
+ right: 0px;
+ bottom: 0px;
+}
+
.hide {
top: -500px !important;
display: none !important;
diff --git a/assets/style/taskrambler.css b/assets/style/taskrambler.css
index d324dc6..bda84ad 100644
--- a/assets/style/taskrambler.css
+++ b/assets/style/taskrambler.css
@@ -302,6 +302,10 @@ div.border .br {
color: rgb(255,253,200);
}
+#main {
+ position: relative;
+}
+
#main a {
text-decoration: none;
font-weight: bold;
diff --git a/docs/taskrambler-0.1.8.ebuild b/docs/taskrambler-0.1.8.ebuild
new file mode 100644
index 0000000..88e8e6f
--- /dev/null
+++ b/docs/taskrambler-0.1.8.ebuild
@@ -0,0 +1,13 @@
+# Copyright 1999-2013 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: $
+
+EAPI="5"
+SLOT="0"
+
+DESCRIPTION="A HTTP server as a library and start of a task management tool."
+HOMEPAGE="http://taskrambler.weird-web-workers.org/"
+SRC_URI="http://redmine.weird-web-workers.org/attachments/download/16/taskrambler-0.1.8.tar.gz"
+
+LICENSE="GPL-3+"
+KEYWORDS="~amd64 ~x86"
diff --git a/src/taskrambler.c b/src/taskrambler.c
index 1df673f..b05a4c1 100644
--- a/src/taskrambler.c
+++ b/src/taskrambler.c
@@ -101,7 +101,7 @@ main()
setrlimit(RLIMIT_NOFILE, &limit);
init_signals();
- daemonize();
+ //daemonize();
shm = shm_open("/fooshm", O_RDWR|O_CREAT, S_IRWXU);
if (-1 == ftruncate(shm, psize)) {