root / snf-astakos-app / astakos / im / static / im / cloudbar / README.rst @ 0f4a8a68
History | View | Annotate | Download (2.7 kB)
1 | 8afc06d1 | Kostas Papadimitriou | Cloudbar |
---|---|---|---|
2 | 8afc06d1 | Kostas Papadimitriou | ======== |
3 | 8afc06d1 | Kostas Papadimitriou | |
4 | 8afc06d1 | Kostas Papadimitriou | Cloudbar is a project to provide common navigation user experience |
5 | 8afc06d1 | Kostas Papadimitriou | between services that share common authentication mechanism and user |
6 | 8afc06d1 | Kostas Papadimitriou | entries but get deployed on different domains and may not share |
7 | 8afc06d1 | Kostas Papadimitriou | common frontend themes/templates. |
8 | 8afc06d1 | Kostas Papadimitriou | |
9 | 8afc06d1 | Kostas Papadimitriou | The project consists of a javascript file which once imported in a |
10 | 8afc06d1 | Kostas Papadimitriou | html page handles the automatic creation and styling of a bar that |
11 | 8afc06d1 | Kostas Papadimitriou | is placed on top of the page (first body element absolutely |
12 | 8afc06d1 | Kostas Papadimitriou | positioned on top). Since the addition of the bar may break the |
13 | 8afc06d1 | Kostas Papadimitriou | current layout of the site once imported the script tries to load an |
14 | 8afc06d1 | Kostas Papadimitriou | additional css located in the same url as the script itself named by |
15 | 8afc06d1 | Kostas Papadimitriou | the ``CLOUDBAR_ACTIVE_SERVICE`` configuration and prefixed by *service_* so |
16 | 8afc06d1 | Kostas Papadimitriou | that css changes can be applied without touching the page native styles. |
17 | 8afc06d1 | Kostas Papadimitriou | |
18 | 8afc06d1 | Kostas Papadimitriou | The bar contains links to the refered services application urls, and |
19 | 8afc06d1 | Kostas Papadimitriou | depending on if the user is authenticated links to account pages |
20 | 8afc06d1 | Kostas Papadimitriou | (login, change profile, logout etc.). |
21 | 8afc06d1 | Kostas Papadimitriou | |
22 | 8afc06d1 | Kostas Papadimitriou | To identify if a user is authenticated the script checks of a |
23 | 8afc06d1 | Kostas Papadimitriou | specific cookie which can be configured using ``CLOUDBAR_COOKIE_NAME`` setting |
24 | 8afc06d1 | Kostas Papadimitriou | contains valid data which should match the following format:: |
25 | 8afc06d1 | Kostas Papadimitriou | |
26 | 8afc06d1 | Kostas Papadimitriou | <username or email>|<authentication token> |
27 | 8afc06d1 | Kostas Papadimitriou | |
28 | 8afc06d1 | Kostas Papadimitriou | |
29 | 8afc06d1 | Kostas Papadimitriou | Usage |
30 | 8afc06d1 | Kostas Papadimitriou | ----- |
31 | 8afc06d1 | Kostas Papadimitriou | |
32 | 8afc06d1 | Kostas Papadimitriou | Each page that wants to display the navigation bar should: |
33 | 8afc06d1 | Kostas Papadimitriou | |
34 | 8afc06d1 | Kostas Papadimitriou | - Include one of the latest jquery builds. |
35 | 8afc06d1 | Kostas Papadimitriou | - Set the ``CLOUDBAR_COOKIE_NAME`` variable containing info about the username |
36 | 8afc06d1 | Kostas Papadimitriou | and the authentication status of the current visitor of the page. |
37 | 8afc06d1 | Kostas Papadimitriou | - Set the ``CLOUDBAR_ACTIVE_SERVICE`` to the id of the service the current |
38 | 8afc06d1 | Kostas Papadimitriou | page refers to so that script cat set the appropriate active styles to |
39 | ebd369d0 | Sofia Papagiannaki | the services menu for services ids see ``SERVICES_LINK`` object in |
40 | ebd369d0 | Sofia Papagiannaki | cloudbar.js. Use special **accounts** value to set account menu as the |
41 | ebd369d0 | Sofia Papagiannaki | active link. |
42 | 8afc06d1 | Kostas Papadimitriou | - Set the ``CLOUDBAR_LOCATION`` to the url where bar files are served from. |
43 | 8afc06d1 | Kostas Papadimitriou | - Include the servicesbar.js script. |
44 | 8afc06d1 | Kostas Papadimitriou | |
45 | 8afc06d1 | Kostas Papadimitriou | |
46 | 8afc06d1 | Kostas Papadimitriou | Example |
47 | 8afc06d1 | Kostas Papadimitriou | ******* |
48 | 8afc06d1 | Kostas Papadimitriou | |
49 | 8afc06d1 | Kostas Papadimitriou | .. codeblock:: javascript |
50 | 8afc06d1 | Kostas Papadimitriou | |
51 | 8afc06d1 | Kostas Papadimitriou | <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js"></script> |
52 | 8afc06d1 | Kostas Papadimitriou | <script> |
53 | 8afc06d1 | Kostas Papadimitriou | var CLOUDBAR_COOKIE_NAME = '_pithos2_a'; |
54 | 8afc06d1 | Kostas Papadimitriou | var CLOUDBAR_ACTIVE_SERVICE = 'cloud'; |
55 | 8afc06d1 | Kostas Papadimitriou | var CLOUDBAR_LOCATION = "http://accounts.cloud.grnet.gr/cloudbar/"; |
56 | 8afc06d1 | Kostas Papadimitriou | |
57 | 8afc06d1 | Kostas Papadimitriou | $(document).ready(function(){ |
58 | 8afc06d1 | Kostas Papadimitriou | $.getScript(CLOUDBAR_LOC + 'cloudbar.js'); |
59 | 8afc06d1 | Kostas Papadimitriou | }) |
60 | 8afc06d1 | Kostas Papadimitriou | </script> |
61 | 8afc06d1 | Kostas Papadimitriou | |
62 | 8afc06d1 | Kostas Papadimitriou | |
63 | 8afc06d1 | Kostas Papadimitriou | Build styles |
64 | 8afc06d1 | Kostas Papadimitriou | ------------ |
65 | 8afc06d1 | Kostas Papadimitriou | |
66 | 8afc06d1 | Kostas Papadimitriou | Cloudbar uses `less-css <http://www.lesscss.org>`_ for css styles |
67 | 8afc06d1 | Kostas Papadimitriou | definitions. To build the less file you need the bootstrap less files |
68 | 8afc06d1 | Kostas Papadimitriou | available on |
69 | 8afc06d1 | Kostas Papadimitriou | `bootstrap github repository <https://github.com/twitter/bootstrap/>`. |
70 | 8afc06d1 | Kostas Papadimitriou | |
71 | 8afc06d1 | Kostas Papadimitriou | You can build the styles using the following command:: |
72 | 8afc06d1 | Kostas Papadimitriou | |
73 | 8afc06d1 | Kostas Papadimitriou | $ lessc --include-path=<path/to/bootstrap> cloudbar.less > cloudbar.css |