Commit 922cd359cb73e839107bb1d84137c011ef2c015a

Authored by Lucas Kanashiro
2 parents ac727c47 c3b96cd5

Merge branch 'stable-4.x'

Showing 216 changed files with 757 additions and 125 deletions   Show diff stats

Too many changes.

To preserve performance only 100 of 216 files displayed.

config/cdtc/config.yaml
1 1 admins:
2 2 - ["Paulo Meirelles", "paulo@softwarelivre.org"]
3 3 external_hostname: spb.cdtc.unb.br
  4 +sisp_external_hostname: sisp.cdtc.unb.br
4 5 external_ip: 164.41.9.49
5 6 site_url: https://spb.cdtc.unb.br
6 7 colab_from_address: '"Portal do Software Publico" <noreply@spb.cdtc.unb.br>'
... ...
config/dev/config.yaml
1 1 admins:
2 2 - ["Paulo Meirelles", "paulo@softwarelivre.org"]
3 3 external_hostname: dev.softwarepublico.gov.br
  4 +sisp_external_hostname: dev.sisp.gov.br
4 5 external_ip: 189.9.151.16
5 6 alternative_hostnames:
6 7 - www.dev.softwarepublico.gov.br
... ...
config/homologa/config.yaml
... ... @@ -4,6 +4,7 @@ admins:
4 4 - ["Nayanne Araújo", "nayanne.bonifacio@planejamento.gov.br"]
5 5 - ["Marisa Souza dos Santos", "marisa.santos@planejamento.gov.br"]
6 6 external_hostname: homologa.softwarepublico.gov.br
  7 +sisp_external_hostname: homologa.sisp.gov.br
7 8 external_ip: 189.9.151.65
8 9 alt_ssh_port: 55555
9 10 site_url: https://homologa.softwarepublico.gov.br
... ...
config/lappis/config.yaml
... ... @@ -2,6 +2,7 @@ admins:
2 2 - ["Paulo Meirelles", "paulo@softwarelivre.org"]
3 3 site_url: https://softwarepublico.lappis
4 4 external_hostname: softwarepublico.lappis
  5 +sisp_external_hostname: sisp.lappis
5 6 external_ip: 10.0.0.11
6 7 colab_from_address: '"Portal do Software Publico" <noreply@softwarepublico.lappis>'
7 8 server_email: '"Portal do Software Publico" <noreply@softwarepublico.lappis>'
... ...
config/local/config.yaml
... ... @@ -2,6 +2,7 @@ admins:
2 2 - ["Paulo Meirelles", "paulo@softwarelivre.org"]
3 3 site_url: https://softwarepublico.dev
4 4 external_hostname: softwarepublico.dev
  5 +sisp_external_hostname: sisp.dev
5 6 alternative_hostnames:
6 7 - www.softwarepublico.dev
7 8 - beta.softwarepublico.dev
... ...
config/prod/config.yaml
... ... @@ -5,6 +5,7 @@ admins:
5 5 - ["Marisa Souza dos Santos", "marisa.santos@planejamento.gov.br"]
6 6 site_url: https://softwarepublico.gov.br
7 7 external_hostname: softwarepublico.gov.br
  8 +sisp_external_hostname: novo.sisp.gov.br
8 9 alternative_hostnames:
9 10 - www.softwarepublico.gov.br
10 11 - portal.softwarepublico.gov.br
... ...
cookbooks/colab/recipes/default.rb
... ... @@ -11,6 +11,11 @@ if node[&#39;platform&#39;] == &#39;centos&#39;
11 11 end
12 12 end
13 13  
  14 +# remove link left behind by old colab packages
  15 +file '/usr/share/nginx/colab' do
  16 + action :delete
  17 +end
  18 +
14 19 package 'colab' do
15 20 action :upgrade
16 21 notifies :restart, 'service[colab]'
... ... @@ -190,6 +195,11 @@ execute &#39;colab-mailman-group&#39; do
190 195 command "usermod -a -G mailman colab"
191 196 end
192 197  
  198 +# Collect static is here instead of colab.spec because
  199 +# plugins might provide their own static files, as
  200 +# the package don't know about installed plugins
  201 +# collectstatic needs to run after package install
  202 +# and plugins instantiated. Same for migrate.
193 203 execute 'colab-admin migrate'
194 204 execute 'colab-admin:collectstatic' do
195 205 command 'colab-admin collectstatic --noinput'
... ...
cookbooks/colab/templates/00-custom_settings.py.erb
... ... @@ -28,7 +28,8 @@ SECRET_KEY = &quot;&lt;%= File.read(&#39;/etc/colab/secret.key&#39;).strip %&gt;&quot;
28 28  
29 29 SITE_URL = "<%= node['config']['site_url'] %>"
30 30  
31   -ALLOWED_HOSTS = ["<%= node['config']['external_hostname'] %>"]
  31 +ALLOWED_HOSTS = ["<%= node['config']['external_hostname'] %>",
  32 + "<%= node['config']['sisp_external_hostname'] %>"]
32 33  
33 34 ## Disable indexing
34 35 ROBOTS_NOINDEX = False
... ...
cookbooks/colab/templates/colab.conf.erb
... ... @@ -5,18 +5,20 @@ upstream colab {
5 5 server {
6 6 listen *:80;
7 7  
8   - server_name <%= node['config']['external_hostname'] %>;
  8 + server_name <%= node['config']['external_hostname'] %> <%= node['config']['sisp_external_hostname'] %>;
9 9  
10 10 access_log /var/log/nginx/colab.access.log;
11 11 error_log /var/log/nginx/colab.error.log;
12   - client_max_body_size 150m;
  12 + client_max_body_size 0;
13 13  
  14 + # FIXME: Favico should be at right place and this
  15 + # code should be removed.
14 16 location ~ ^/static/img/fav\.[^.]+\.ico$ {
15 17 alias /var/lib/colab/assets/spb/fav.ico;
16 18 }
17 19  
18 20 location / {
19   - root /usr/share/nginx/colab;
  21 + root /var/lib/colab/assets/;
20 22 try_files $uri @colab-app;
21 23 }
22 24  
... ...
cookbooks/noosfero/files/noosfero.yml
1 1 production:
2   - max_upload_size: 150MB
  2 + max_upload_size: 500MB
... ...
cookbooks/noosfero/templates/nginx.conf.erb
... ... @@ -6,11 +6,11 @@ upstream noosfero {
6 6  
7 7 server {
8 8 listen *:80;
9   - server_name <%= node['config']['external_hostname'] %> <%= node['peers']['social'] %>;
  9 + server_name <%= node['config']['external_hostname'] %> <%= node['peers']['social'] %> <%= node['config']['sisp_external_hostname'] %>;
10 10 underscores_in_headers on;
11 11 access_log /var/log/nginx/noosfero.access.log;
12 12 error_log /var/log/nginx/noosfero.error.log;
13   - client_max_body_size 150m;
  13 + client_max_body_size 0;
14 14  
15 15 root /usr/lib/noosfero/public;
16 16 location /social/ {
... ... @@ -24,7 +24,7 @@ server {
24 24 proxy_read_timeout 90;
25 25 proxy_connect_timeout 90;
26 26 proxy_redirect off;
27   - proxy_set_header Host <%= node['config']['external_hostname'] %>;
  27 + proxy_set_header Host $host;
28 28 proxy_set_header X-Real-IP $remote_addr;
29 29 proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
30 30 }
... ...
cookbooks/reverse_proxy/files/host-reverseproxy/dev.sisp.gov.br.crt 0 → 100644
... ... @@ -0,0 +1,27 @@
  1 +-----BEGIN CERTIFICATE-----
  2 +MIIEgTCCA2mgAwIBAgIJAJz0XkZVg/KTMA0GCSqGSIb3DQEBCwUAMIHWMQswCQYD
  3 +VQQGEwJCUjEZMBcGA1UECAwQRGlzdHJpdG8gRmVkZXJhbDERMA8GA1UEBwwIQnJh
  4 +c2lsaWExPTA7BgNVBAoMNE1pbmlzdGVyaW8gZG8gUGxhbmVqYW1lbnRvLCBPcsOD
  5 +wqdhbWVudG8gZSBHZXN0w4PCo28xDTALBgNVBAsMBFNMVEkxIzAhBgNVBAMMGmRl
  6 +di5zb2Z0d2FyZXB1YmxpY28uZ292LmJyMSYwJAYJKoZIhvcNAQkBFhdwYXVsb0Bz
  7 +b2Z0d2FyZWxpdnJlLm9yZzAeFw0xNTAzMTIxOTQ3NTdaFw0xNzEyMDYxOTQ3NTda
  8 +MIHWMQswCQYDVQQGEwJCUjEZMBcGA1UECAwQRGlzdHJpdG8gRmVkZXJhbDERMA8G
  9 +A1UEBwwIQnJhc2lsaWExPTA7BgNVBAoMNE1pbmlzdGVyaW8gZG8gUGxhbmVqYW1l
  10 +bnRvLCBPcsODwqdhbWVudG8gZSBHZXN0w4PCo28xDTALBgNVBAsMBFNMVEkxIzAh
  11 +BgNVBAMMGmRldi5zb2Z0d2FyZXB1YmxpY28uZ292LmJyMSYwJAYJKoZIhvcNAQkB
  12 +FhdwYXVsb0Bzb2Z0d2FyZWxpdnJlLm9yZzCCASIwDQYJKoZIhvcNAQEBBQADggEP
  13 +ADCCAQoCggEBANUAsaDZ77GHyrlWDet+I2Xq8Sf31j3ponMXzMd/6zAu6NSDcZjl
  14 +LPrFEqfqBVdY3T1L5THDHG42ZS6n0FHsOTBq2JKswlcTSPyaHiweRI+lEMVzRcgm
  15 +GshtJnTWukMsDvOGwVe6zkcKWl5vG2KKgTrI0l+QnCbCP10UNqwTCl2gN5l0piDl
  16 +rTiBwRbfn1wdGd9JgQr+MQrMhPnE31vsSA8G5p0KUX4oxYgmKmMykutqJIia7LeF
  17 +VQtMuRZbfz/HwtUtFuAa3ztBQiKmoZlrh1k/akm3YhBiramtAXEt7aHI6HY3X0pw
  18 +l7AE7MHOutCfoshEHZToZNJiyXpDATIIwfsCAwEAAaNQME4wHQYDVR0OBBYEFDVm
  19 +z5gED6aHPs1H9DdqUfGIY0vfMB8GA1UdIwQYMBaAFDVmz5gED6aHPs1H9DdqUfGI
  20 +Y0vfMAwGA1UdEwQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBANNc+ZD4ImQI8V2Y
  21 +2lkRnRQvQ7M2mdAgRaP5f4EJLLlczmRPzNhItiYr9njg8pUdN50iQPnvwlDJhI5d
  22 +mFuDypY1AhLB74sSDk7Um3gFP5rAlKdD9WrmKA3FSfGcUJA2Usa+6NnudBmm1Uvn
  23 +yLGpOCSnxQfTZ+81XanI9Sy6kV/6Nwpaid9akmm3aIUtJA0thC0OWEhHMY97vqBF
  24 +7or8IKooXxIx4jNbholJXQ2zD5tc5nDfBwB9DFBX7LeXRqZQE4T0eUOhF/shoRnG
  25 +gFSMN8Vjhw8eV7wPvxX6aX8kZmfZgAF1m4EzEaDLs2iL7dVkPxO7SSlXqkg0nLuH
  26 +RWIj+F0=
  27 +-----END CERTIFICATE-----
... ...
cookbooks/reverse_proxy/files/host-reverseproxy/dev.sisp.gov.br.key 0 → 100644
... ... @@ -0,0 +1,28 @@
  1 +-----BEGIN PRIVATE KEY-----
  2 +MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQDVALGg2e+xh8q5
  3 +Vg3rfiNl6vEn99Y96aJzF8zHf+swLujUg3GY5Sz6xRKn6gVXWN09S+UxwxxuNmUu
  4 +p9BR7DkwatiSrMJXE0j8mh4sHkSPpRDFc0XIJhrIbSZ01rpDLA7zhsFXus5HClpe
  5 +bxtiioE6yNJfkJwmwj9dFDasEwpdoDeZdKYg5a04gcEW359cHRnfSYEK/jEKzIT5
  6 +xN9b7EgPBuadClF+KMWIJipjMpLraiSImuy3hVULTLkWW38/x8LVLRbgGt87QUIi
  7 +pqGZa4dZP2pJt2IQYq2prQFxLe2hyOh2N19KcJewBOzBzrrQn6LIRB2U6GTSYsl6
  8 +QwEyCMH7AgMBAAECggEAa2w6KUFAXWx6lRYNVyL6f0AJ93pKllbqEtmB8WtWFarS
  9 +ybqw48dQ8/fH/N9Nakvq6CsKoBoikILmbK09ptNX1E9OgkqWiIu1V4/yf5WURk2d
  10 +M7d7DgIJp+NEbdCNh6sEr1Ta1X/k4HccNFwcl4n6usblMkUgO3vjsPGs0QOZSrXD
  11 +NDp4ixdElxyuZPZnRkrry4JZzm0Jad/kNw0naz0S+YLqysJNOD1kepN+DAlap5WE
  12 +oEfvmkLgrTDnjar8cK3i/EzbzNxWxLo89IdbbnpPV3m/SSQO7p689uL+VkZxLz0I
  13 +uzVg6TZ1jQ5+IWjKL0Aqt5xkStaZp2uh8vlNw/0IQQKBgQDwBVtI+2ASacuu6eJL
  14 +RTWalTPH/jr9mA0Ism2Px5hdI7vugJ3NJY0fIRTzRU53MFfRXZIcpYf+60stYhiX
  15 +QBmF/DukxtUL4naOz2VzkY5RcKnfsvUff65KGaCdHzWQQsL93qEjpusRMQwhGErt
  16 +vgKsbjgyHaVbVLGNZuFYoNLzkwKBgQDjLt6d8p7rR2e89sQKuE0B43UiuL/rDY1n
  17 +OC411KwqsKFX3J/ias4NIy/h1BEag+Ron9SMRAlVoPg+2aLmywZp4KijcFxSLUFI
  18 +2fWtoRXEyAOgz61I9SonGvBQLCLAZ+24VpoymmMNdH/xbeoysRCxovPw3NPnFfzB
  19 +xYfiRpXI+QKBgE9v1mhvGbq+XPUE3yo+O6Fvo/WaxHdNrXKlavFdA6Y/v2EOHCvb
  20 +M7uLvV1OIMv9qfLW3xawCjRqNzVL9AuK4WegtTSxwazvRIG7Tj5TfCCkAvTQS6Qj
  21 +I9HObYPS4m1eSx6uYfJkugO0kekaGyJX8paS2/JqMWHqw+Cing4xG+AVAoGBAKx2
  22 +DStMXpXve/H4RnR42oS/flGgfJjcjea4wGO/Ef/KXIENjBZezBMvDg9aZK2DSGag
  23 +RsNAdvGZJDraDo8zuqevk3WXO45qqm+6foWTjqn2yMJQRZToAFr1WU8TYkI74zuY
  24 +CrC1gNJbCTFnJm3a+vhO4u6LRRXdHCahZHlC6jxJAoGARpcsSUSXqWOsmCvP+d0I
  25 +m3B7DTJc0fL7WOoXINSa1U4zr9vMfSxTdWBdlKmizDvzzz9+Rx+03TGQkqzroTk/
  26 +eWZuPuJ74qXkT68JCoCmf6MBolIkWqkDO5zKlQF3hkb3c16mOKCqzQpXLGtoZQRG
  27 +PH+5xM1maQvJxF5tCVQz0uU=
  28 +-----END PRIVATE KEY-----
... ...
cookbooks/reverse_proxy/files/host-reverseproxy/sisp.dev.crt 0 → 100644
... ... @@ -0,0 +1,27 @@
  1 +-----BEGIN CERTIFICATE-----
  2 +MIIEjzCCA3egAwIBAgIJAPLzeW3WZTOqMA0GCSqGSIb3DQEBCwUAMIHdMQswCQYD
  3 +VQQGEwJCUjEZMBcGA1UECAwQRGlzdHJpdG8gRmVkZXJhbDERMA8GA1UEBwwIQnJh
  4 +c2lsaWExIzAhBgNVBAoMGk1pbmlzdGVyaW8gZG8gUGxhbmVqYW1lbnRvMS0wKwYD
  5 +VQQLDCRQcm9ncmFtYSBTb2Z0d2FyZSBQdWJsaWNvIEJyYXNpbGVpcm8xJDAiBgNV
  6 +BAMMG2JldGEuc29mdHdhcmVwdWJsaWNvLmdvdi5icjEmMCQGCSqGSIb3DQEJARYX
  7 +cGF1bG9Ac29mdHdhcmVsaXZyZS5vcmcwHhcNMTUwMjEyMTM0MDEwWhcNMTcxMTA4
  8 +MTM0MDEwWjCB3TELMAkGA1UEBhMCQlIxGTAXBgNVBAgMEERpc3RyaXRvIEZlZGVy
  9 +YWwxETAPBgNVBAcMCEJyYXNpbGlhMSMwIQYDVQQKDBpNaW5pc3RlcmlvIGRvIFBs
  10 +YW5lamFtZW50bzEtMCsGA1UECwwkUHJvZ3JhbWEgU29mdHdhcmUgUHVibGljbyBC
  11 +cmFzaWxlaXJvMSQwIgYDVQQDDBtiZXRhLnNvZnR3YXJlcHVibGljby5nb3YuYnIx
  12 +JjAkBgkqhkiG9w0BCQEWF3BhdWxvQHNvZnR3YXJlbGl2cmUub3JnMIIBIjANBgkq
  13 +hkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAvQcGwjcDku+162qWFXvfD3VzK+qonEIo
  14 +EWimjFgxkBIsbKQ6WurTg6jTdT7TCyz0bfXgNPUo2tTfOtyM2ctb/oCfu5Piu3hK
  15 +TU71/oswUWCMnPwaGhvJ7wWFrkClLNS3MYzlbGAxuLtX8KEcCSOR0109xvVMb+LD
  16 +kAUmHij1DfI9XguYS4J2xQ+aDCHZRzRxMPV7If75HtoeZ7y8bieqFL9T1+atsvbS
  17 +WuoYaJFKiW859h6Fwo/0wfkv8gSaGulSwnS2esMPfEm97QfmWbgEqq/XFkrKWtPo
  18 +ENNY8WlGFDMWdur7dlQwazjG9+OK5h3X84qDfYhzY4GPh1O+2WDudwIDAQABo1Aw
  19 +TjAdBgNVHQ4EFgQUzu9xzlM0W3YmELPcUvNlfpYcndQwHwYDVR0jBBgwFoAUzu9x
  20 +zlM0W3YmELPcUvNlfpYcndQwDAYDVR0TBAUwAwEB/zANBgkqhkiG9w0BAQsFAAOC
  21 +AQEAaQKLFZaqLRS493o4cyJsz1mxBgbzQ+6vttEPmY1/yW391h9rBXDTlpqRt22z
  22 ++CNDzo7L2LQjlrvvqk/ByDl5xWw4z9Qy+OFGFVGDVPvhld00/7QNnqkwyYbqWghN
  23 +M0m/BZp59Bpm+eRHG1HIw0jpA/zfgVqUjoIgPWWnGJLtJh4l+GOAxwTdJh0Vp/1Q
  24 +yYiI6NRufr8+lUStojY27dC94WLX2dCUAS0imvdONWiaCZ8ktq4D3AGkni5wUVH1
  25 +knap5Bf5FRnKCTnRmZe1Wi+e2ZIMDdW4gHsC5NKO38c4agWubE68yhYiFKMRLWsd
  26 +fLq+KLdrwb++Xd0SECj/hsQYLQ==
  27 +-----END CERTIFICATE-----
... ...
cookbooks/reverse_proxy/files/host-reverseproxy/sisp.dev.key 0 → 100644
... ... @@ -0,0 +1,28 @@
  1 +-----BEGIN PRIVATE KEY-----
  2 +MIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQC9BwbCNwOS77Xr
  3 +apYVe98PdXMr6qicQigRaKaMWDGQEixspDpa6tODqNN1PtMLLPRt9eA09Sja1N86
  4 +3IzZy1v+gJ+7k+K7eEpNTvX+izBRYIyc/BoaG8nvBYWuQKUs1LcxjOVsYDG4u1fw
  5 +oRwJI5HTXT3G9Uxv4sOQBSYeKPUN8j1eC5hLgnbFD5oMIdlHNHEw9Xsh/vke2h5n
  6 +vLxuJ6oUv1PX5q2y9tJa6hhokUqJbzn2HoXCj/TB+S/yBJoa6VLCdLZ6ww98Sb3t
  7 +B+ZZuASqr9cWSspa0+gQ01jxaUYUMxZ26vt2VDBrOMb344rmHdfzioN9iHNjgY+H
  8 +U77ZYO53AgMBAAECggEAXM+AYAeG97Q+zDHvMuk5Imv2eo+i7eYFqlaJv8rluulR
  9 +ap5QEKfP5osUGDMaiBgwg3T/+sCMqLVwTYRQm/cfWhxpUT5RSt7LDJ5CZhKNTMdt
  10 +Av89CaivQ26grmgLMbHXqLqXQtkQULWbfgh8rXgLd44GcROrzhu3DZWZm6FcgNWf
  11 +0/NpruEkxyqvCGygOOPR8IMlMGuCs+CUcVuDL5InrobroKTrWgWXOW8k+XJpaINz
  12 +5udLgdTAfRWecuJkFvfA71JZJXpnyTSx2je16SwnA6bhaQCSuK4myXiOVacPUOhM
  13 +PZ2/gcZbuB16vFlNMhQUjvzFKMvH96R+PrYuG7BGYQKBgQD5gZwKuc3cat17ghpB
  14 +WSl3njBrqiCMvTYeec6anfTB0bSs9z8LoCwRdLATw9AAPfFuXnxzBNzTEK3GBnW6
  15 +slYeDrhrOKz4uilHnXdSGXu0vOgjn5AzuHtnNUc2Eyx3qe2RxXJZ5Y/ADhJNCTIU
  16 +GFTBak/FLFrMOvxPtFaluP4VKQKBgQDB8naaziF42y254+JzbshMlLffRpnubk/X
  17 +Xxvntjh7dCPCS+jrARM0XGHnrhFyDOODny55EyRzYip2+r80PN4N5rzQuaIFOhh7
  18 +aT/X2hFBFcAmiWCUTRXCRdNTZYGFNOQ+A9xrR375Ltqu3w1K/RB2QEfWYPR+KLEe
  19 +QdtHmuK6nwKBgQCVeITflBH0cvy+SeGqtlx2MYk2ZpPbXFq4hSY1UF1ZY2TGndPi
  20 +BhGAX5RAMvU/v9wLz4TkbsxPkVVZJXOP5dhbZ1wpt6k/1F54bagWwfdu/iBffu6n
  21 +XWRoHu3LQk9IXL9arZtkqXalioiCJ/kdOrpDqImjSIAYi1mt8g5ad2mXiQKBgHdy
  22 +Bk2s6bxu8ChuCscg0UcoyF1ANAk98vonXx5DgWG201cUPSyOiu9SfhGbiK7+9RfY
  23 +71wtx+Mv8As6votDeVaCZoL98KTbdLx8w48ChGHbLW4OaWasWtw8+LuB5lTNkEwJ
  24 +QLTpYW/BxXixcpReascJK7UCHVGdagfCc3QUFdLtAoGBAPN9+2/W990bWNLlEncB
  25 +tMq89b/pOGhy9u+CN2pgKmBBkL5M8ESyYDUKM7wn+DlilpcYvadlR9gfk4gaCQQ4
  26 +DLHGFGfvVN1CRuIU0YAgaLMNveVV/6Dd7D8/OxYxKlCrFZaUfVe2HcVPbm+w4tZf
  27 +2HfXJdbD1gNhbTmWlKjFLdA1
  28 +-----END PRIVATE KEY-----
... ...
cookbooks/reverse_proxy/files/host-reverseproxy/sisp.lappis.crt 0 → 100644
... ... @@ -0,0 +1,27 @@
  1 +-----BEGIN CERTIFICATE-----
  2 +MIIEjzCCA3egAwIBAgIJAPLzeW3WZTOqMA0GCSqGSIb3DQEBCwUAMIHdMQswCQYD
  3 +VQQGEwJCUjEZMBcGA1UECAwQRGlzdHJpdG8gRmVkZXJhbDERMA8GA1UEBwwIQnJh
  4 +c2lsaWExIzAhBgNVBAoMGk1pbmlzdGVyaW8gZG8gUGxhbmVqYW1lbnRvMS0wKwYD
  5 +VQQLDCRQcm9ncmFtYSBTb2Z0d2FyZSBQdWJsaWNvIEJyYXNpbGVpcm8xJDAiBgNV
  6 +BAMMG2JldGEuc29mdHdhcmVwdWJsaWNvLmdvdi5icjEmMCQGCSqGSIb3DQEJARYX
  7 +cGF1bG9Ac29mdHdhcmVsaXZyZS5vcmcwHhcNMTUwMjEyMTM0MDEwWhcNMTcxMTA4
  8 +MTM0MDEwWjCB3TELMAkGA1UEBhMCQlIxGTAXBgNVBAgMEERpc3RyaXRvIEZlZGVy
  9 +YWwxETAPBgNVBAcMCEJyYXNpbGlhMSMwIQYDVQQKDBpNaW5pc3RlcmlvIGRvIFBs
  10 +YW5lamFtZW50bzEtMCsGA1UECwwkUHJvZ3JhbWEgU29mdHdhcmUgUHVibGljbyBC
  11 +cmFzaWxlaXJvMSQwIgYDVQQDDBtiZXRhLnNvZnR3YXJlcHVibGljby5nb3YuYnIx
  12 +JjAkBgkqhkiG9w0BCQEWF3BhdWxvQHNvZnR3YXJlbGl2cmUub3JnMIIBIjANBgkq
  13 +hkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAvQcGwjcDku+162qWFXvfD3VzK+qonEIo
  14 +EWimjFgxkBIsbKQ6WurTg6jTdT7TCyz0bfXgNPUo2tTfOtyM2ctb/oCfu5Piu3hK
  15 +TU71/oswUWCMnPwaGhvJ7wWFrkClLNS3MYzlbGAxuLtX8KEcCSOR0109xvVMb+LD
  16 +kAUmHij1DfI9XguYS4J2xQ+aDCHZRzRxMPV7If75HtoeZ7y8bieqFL9T1+atsvbS
  17 +WuoYaJFKiW859h6Fwo/0wfkv8gSaGulSwnS2esMPfEm97QfmWbgEqq/XFkrKWtPo
  18 +ENNY8WlGFDMWdur7dlQwazjG9+OK5h3X84qDfYhzY4GPh1O+2WDudwIDAQABo1Aw
  19 +TjAdBgNVHQ4EFgQUzu9xzlM0W3YmELPcUvNlfpYcndQwHwYDVR0jBBgwFoAUzu9x
  20 +zlM0W3YmELPcUvNlfpYcndQwDAYDVR0TBAUwAwEB/zANBgkqhkiG9w0BAQsFAAOC
  21 +AQEAaQKLFZaqLRS493o4cyJsz1mxBgbzQ+6vttEPmY1/yW391h9rBXDTlpqRt22z
  22 ++CNDzo7L2LQjlrvvqk/ByDl5xWw4z9Qy+OFGFVGDVPvhld00/7QNnqkwyYbqWghN
  23 +M0m/BZp59Bpm+eRHG1HIw0jpA/zfgVqUjoIgPWWnGJLtJh4l+GOAxwTdJh0Vp/1Q
  24 +yYiI6NRufr8+lUStojY27dC94WLX2dCUAS0imvdONWiaCZ8ktq4D3AGkni5wUVH1
  25 +knap5Bf5FRnKCTnRmZe1Wi+e2ZIMDdW4gHsC5NKO38c4agWubE68yhYiFKMRLWsd
  26 +fLq+KLdrwb++Xd0SECj/hsQYLQ==
  27 +-----END CERTIFICATE-----
... ...
cookbooks/reverse_proxy/files/host-reverseproxy/sisp.lappis.key 0 → 100644
... ... @@ -0,0 +1,28 @@
  1 +-----BEGIN PRIVATE KEY-----
  2 +MIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQC9BwbCNwOS77Xr
  3 +apYVe98PdXMr6qicQigRaKaMWDGQEixspDpa6tODqNN1PtMLLPRt9eA09Sja1N86
  4 +3IzZy1v+gJ+7k+K7eEpNTvX+izBRYIyc/BoaG8nvBYWuQKUs1LcxjOVsYDG4u1fw
  5 +oRwJI5HTXT3G9Uxv4sOQBSYeKPUN8j1eC5hLgnbFD5oMIdlHNHEw9Xsh/vke2h5n
  6 +vLxuJ6oUv1PX5q2y9tJa6hhokUqJbzn2HoXCj/TB+S/yBJoa6VLCdLZ6ww98Sb3t
  7 +B+ZZuASqr9cWSspa0+gQ01jxaUYUMxZ26vt2VDBrOMb344rmHdfzioN9iHNjgY+H
  8 +U77ZYO53AgMBAAECggEAXM+AYAeG97Q+zDHvMuk5Imv2eo+i7eYFqlaJv8rluulR
  9 +ap5QEKfP5osUGDMaiBgwg3T/+sCMqLVwTYRQm/cfWhxpUT5RSt7LDJ5CZhKNTMdt
  10 +Av89CaivQ26grmgLMbHXqLqXQtkQULWbfgh8rXgLd44GcROrzhu3DZWZm6FcgNWf
  11 +0/NpruEkxyqvCGygOOPR8IMlMGuCs+CUcVuDL5InrobroKTrWgWXOW8k+XJpaINz
  12 +5udLgdTAfRWecuJkFvfA71JZJXpnyTSx2je16SwnA6bhaQCSuK4myXiOVacPUOhM
  13 +PZ2/gcZbuB16vFlNMhQUjvzFKMvH96R+PrYuG7BGYQKBgQD5gZwKuc3cat17ghpB
  14 +WSl3njBrqiCMvTYeec6anfTB0bSs9z8LoCwRdLATw9AAPfFuXnxzBNzTEK3GBnW6
  15 +slYeDrhrOKz4uilHnXdSGXu0vOgjn5AzuHtnNUc2Eyx3qe2RxXJZ5Y/ADhJNCTIU
  16 +GFTBak/FLFrMOvxPtFaluP4VKQKBgQDB8naaziF42y254+JzbshMlLffRpnubk/X
  17 +Xxvntjh7dCPCS+jrARM0XGHnrhFyDOODny55EyRzYip2+r80PN4N5rzQuaIFOhh7
  18 +aT/X2hFBFcAmiWCUTRXCRdNTZYGFNOQ+A9xrR375Ltqu3w1K/RB2QEfWYPR+KLEe
  19 +QdtHmuK6nwKBgQCVeITflBH0cvy+SeGqtlx2MYk2ZpPbXFq4hSY1UF1ZY2TGndPi
  20 +BhGAX5RAMvU/v9wLz4TkbsxPkVVZJXOP5dhbZ1wpt6k/1F54bagWwfdu/iBffu6n
  21 +XWRoHu3LQk9IXL9arZtkqXalioiCJ/kdOrpDqImjSIAYi1mt8g5ad2mXiQKBgHdy
  22 +Bk2s6bxu8ChuCscg0UcoyF1ANAk98vonXx5DgWG201cUPSyOiu9SfhGbiK7+9RfY
  23 +71wtx+Mv8As6votDeVaCZoL98KTbdLx8w48ChGHbLW4OaWasWtw8+LuB5lTNkEwJ
  24 +QLTpYW/BxXixcpReascJK7UCHVGdagfCc3QUFdLtAoGBAPN9+2/W990bWNLlEncB
  25 +tMq89b/pOGhy9u+CN2pgKmBBkL5M8ESyYDUKM7wn+DlilpcYvadlR9gfk4gaCQQ4
  26 +DLHGFGfvVN1CRuIU0YAgaLMNveVV/6Dd7D8/OxYxKlCrFZaUfVe2HcVPbm+w4tZf
  27 +2HfXJdbD1gNhbTmWlKjFLdA1
  28 +-----END PRIVATE KEY-----
... ...
cookbooks/reverse_proxy/recipes/default.rb
... ... @@ -6,6 +6,13 @@ cookbook_file &quot;/etc/nginx/#{node[&#39;config&#39;][&#39;external_hostname&#39;]}.crt&quot; do
6 6 notifies :restart, 'service[nginx]'
7 7 end
8 8  
  9 +cookbook_file "/etc/nginx/#{node['config']['sisp_external_hostname']}.crt" do
  10 + owner 'root'
  11 + group 'root'
  12 + mode 0600
  13 + notifies :restart, 'service[nginx]'
  14 +end
  15 +
9 16 cookbook_file "/etc/sysctl.d/ip_forward.conf" do
10 17 owner 'root'
11 18 group 'root'
... ... @@ -23,6 +30,13 @@ cookbook_file &quot;/etc/nginx/#{node[&#39;config&#39;][&#39;external_hostname&#39;]}.key&quot; do
23 30 notifies :restart, 'service[nginx]'
24 31 end
25 32  
  33 +cookbook_file "/etc/nginx/#{node['config']['sisp_external_hostname']}.key" do
  34 + owner 'root'
  35 + group 'root'
  36 + mode 0600
  37 + notifies :restart, 'service[nginx]'
  38 +end
  39 +
26 40 template '/etc/nginx/conf.d/reverse_proxy.conf' do
27 41 owner 'root'
28 42 group 'root'
... ...
cookbooks/reverse_proxy/templates/reverse_proxy.conf.erb
... ... @@ -5,15 +5,15 @@ upstream colab {
5 5 server {
6 6 listen *:80;
7 7  
8   - server_name <%= node['config']['external_hostname'] %>;
9   - return 301 https://$server_name$request_uri;
  8 + server_name <%= node['config']['external_hostname'] %> <%= node['config']['sisp_external_hostname'] %>;
  9 + return 301 https://$host$request_uri;
10 10 }
11 11  
12 12 server {
13 13 listen *:443 ssl;
14 14  
15 15 server_name <%= node['config']['external_hostname'] %>;
16   - client_max_body_size 150m;
  16 + client_max_body_size 500m;
17 17  
18 18 ssl on;
19 19  
... ... @@ -47,3 +47,38 @@ server {
47 47 }
48 48  
49 49 }
  50 +
  51 +server {
  52 + listen *:443 ssl;
  53 +
  54 + server_name <%= node['config']['sisp_external_hostname'] %>;
  55 + client_max_body_size 500m;
  56 +
  57 + ssl on;
  58 +
  59 + ssl_certificate /etc/nginx/<%= node['config']['sisp_external_hostname'] %>.crt;
  60 + ssl_certificate_key /etc/nginx/<%= node['config']['sisp_external_hostname'] %>.key;
  61 + ssl_session_cache shared:SSL:10m;
  62 + ssl_session_timeout 5m;
  63 + ssl_protocols SSLv3 TLSv1 TLSv1.1 TLSv1.2;
  64 + ssl_ciphers HIGH:!aNULL:!MD5;
  65 + ssl_prefer_server_ciphers on;
  66 +
  67 + access_log /var/log/nginx/ssl-<%= node['config']['sisp_external_hostname'] %>.access.log;
  68 + error_log /var/log/nginx/ssl-<%= node['config']['sisp_external_hostname'] %>.error.log;
  69 +
  70 + # TODO caching
  71 + location / {
  72 + proxy_pass http://colab;
  73 + proxy_read_timeout 90;
  74 + proxy_connect_timeout 90;
  75 + proxy_redirect off;
  76 + proxy_set_header Host $host;
  77 + proxy_set_header X-Real-IP $remote_addr;
  78 + proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
  79 + proxy_set_header X-Forwarded-Proto https;
  80 + proxy_set_header Remote-User '';
  81 + proxy_set_header REMOTE_USER '';
  82 + }
  83 +
  84 +}
... ...
docs/apoio.rst.in
... ... @@ -68,23 +68,22 @@ O output do comando acima é a sua chave pública, ela deverá ser copiada e col
68 68 Git push com HTTPS
69 69 -----------------
70 70  
71   -Para a utilização do git com protocolo HTTPS é necessário configurar a senha do perfil do seu usuário na ferramenta Gitlab, pois a senha do seu usuário do portal não é configurada no Gitlab já que a autenticação é feita via REMOTE_USER (cabeçalho HTTP). Para configurar a sua senha no Gitlab é necessário que já exista um usuário válido no portal e o mesmo esteja logado, em seguida, siga os passos a seguir:
  71 +Para a utilização do git com protocolo HTTPS, existem dois casos básicos: aqueles que já tinham cadastro e os novos usuários. Se for o primeiro cadastro, pule o passo "0" descrito abaixo.
72 72  
73   -1- No menu, clique no botão "Desenvolvimento" para que apareça novas opções
74   -2- Nas opções apresentadas, clique em "Perfil" para ser direcionado para o seu perfil do Gitlab
75   -3- No seu perfil será apresentado um novo menu abaixo do menu do portal, nesse menu clique na aba "Password"
76   -4- Na aba "Password", indique que você esqueceu a sua senha clicando no link "Forgot your password?"
77   -5- Um email será enviado para o seu endereço de email configurado no seu usuário do portal
78   -6- Abra o email recebido e clique no link "Change my password", que irá redirecionar para uma página de configuração de uma nova senha
79   -7- Na página de configuração de uma nova senha digite a sua senha e a confirme (sugere-se que use a mesma senha do portal), finalizando a operação de configuração da senha do seu perfil no Gitlab
  73 +0) Mudar senha no colab (para usuários já cadastrados): No topo da tela, do lado direito, você verá um icone circular no qual você deve clicar. Na nova tela apresentada, escolha a opção "Meu perfil" e em seguida escolha a opção "Editar Perfil". Na nova tela, clique na opção "Trocar senha". Digite a sua senha original, e a nova senha.
  74 +1) Para clonar o repositório via http, use o comando abaixo:
80 75  
81   -Com a senha do seu perfil do Gitlab configurada pode-se utlizar normalmente o git com protocolo HTTPS, onde será solcitado o seu usuário e senha durante as operações. Lembrando que o usuário será o seu usuário do portal e a senha será a que foi configurada com o processo descrito anteriormente.
  76 + $ git -c http.sslVerify=false clone <seu-repositório>
82 77  
83   -No Portal do Software Público Brasileiro, assim como em outros portais do governo, temos problemas com o certificado digital. Para o git conseguir realizar as operções usando HTTPS é necessário ignorar o certificado, para isso, abra o terminal (com o git instalado) e execute o seguinte comando::
  78 +2) Para realizar o push via http, faça:
84 79  
85 80 $ cd <caminho-do-diretório-do-projeto>
86 81 $ git config http.sslVerify "false"
  82 + $ git push <remote> <branch>
87 83  
  84 +3) Informe o seu login e senha.
  85 +
  86 +No Portal do Software Público Brasileiro, assim como em outros portais do governo, temos problemas com o certificado digital. Para o git conseguir realizar as operações usando HTTPS é necessário ignorar o certificado, por isto as opções com "sslVerify".
88 87  
89 88 Integração manual entre repositórios
90 89 ---------------------------------
... ...
src/colab-spb-plugin/setup.py
... ... @@ -15,7 +15,7 @@ version = open(&#39;VERSION&#39;).read().strip()
15 15  
16 16 setup(
17 17 name='colab-spb-plugin',
18   - version=version,
  18 + version='0.2.3',
19 19 author='Macartur Sousa',
20 20 author_email='macartur.sc@gmail.com',
21 21 url='https://portal.softwarepublico.gov.br/gitlab/softwarepublico/colab-spb-plugin/',
... ...
src/colab-spb-theme-plugin/Makefile
1 1 PACKAGE = colab-spb-theme
2   -VERSION = $(shell cat VERSION)
  2 +VERSION = 0.3.4
3 3 DISTDIR = dist
4 4 PACKAGE_NAME = $(PACKAGE)-$(VERSION)
5 5 TARBALL = $(PACKAGE_NAME).tar.gz
... ... @@ -10,7 +10,7 @@ all:
10 10 colab_dir=/usr/lib/colab
11 11  
12 12 dist: clean
13   - mkdir -p $(DISTDIR)/$(PACKAGE_NAME)
  13 + mkdir -p $(DISTDIR)/$(PACKAGE_NAME)
14 14 tar --exclude=.git --exclude=$(DISTDIR) -cf - * | (cd $(DISTDIR)/$(PACKAGE_NAME) && tar xf -)
15 15 cd $(DISTDIR) && tar -czf $(TARBALL) $(PACKAGE_NAME)
16 16 rm -r $(DISTDIR)/$(PACKAGE_NAME)
... ...
src/colab-spb-theme-plugin/colab_spb_theme/static/css/screen.css
... ... @@ -168,14 +168,9 @@ ul.message-list li {
168 168  
169 169  
170 170 /* Forms */
171   -.required label:before {
172   - color: #f00;
173   - content: "* ";
174   -}
175   -
176 171 form.signup .form-group {
177   - width: 90%;
178   - margin-left: 0.5em;
  172 + margin-left: 0px;
  173 + margin-right: 22px;
179 174 }
180 175  
181 176 div.submit {
... ... @@ -517,3 +512,79 @@ span.highlighted {
517 512 padding: 40px 0 60px 0;
518 513 color: #172738;
519 514 }
  515 +
  516 +.colab-content {
  517 + max-width: 960px;
  518 + min-width: 960px;
  519 + padding: 40px 0 60px 0;
  520 +}
  521 +
  522 +.colab-content h2{
  523 + color: #FF0366;
  524 + font-size: 16px;
  525 + font-family: "open_sansregular",Arial, Helvetica,sans-serif;
  526 + font-weight: 300;
  527 + text-transform: uppercase;
  528 +}
  529 +
  530 +.colab-content h1{
  531 + padding: 5px 0 10px 0;
  532 + border-bottom: 1px solid #D3D6DE;
  533 + font-family: Arial, Helvetica, sans-serif;
  534 + font-size: 35px;
  535 + font-variant: normal;
  536 + font-weight: bold;
  537 +}
  538 +
  539 +h4.help-pane-title {
  540 + font-family: Arial;
  541 + color: #172738;
  542 +}
  543 +
  544 +#btn-cadastrar {
  545 + text-transform: uppercase;
  546 + font-weight: bold;
  547 + padding: 5px 27px 5px 27px;
  548 +}
  549 +
  550 +.control-label {
  551 + font-family: Arial;
  552 + font-weight: normal;
  553 + font-size: 16px;
  554 +}
  555 +
  556 +form.signup {
  557 + padding-top: 30px;
  558 +}
  559 +
  560 +.signup .form-group:nth-child(5),
  561 +.signup .form-group:nth-child(6) {
  562 + width: 45%;
  563 +}
  564 +
  565 +.signup .form-group:nth-child(5) {
  566 + float: left;
  567 +}
  568 +
  569 +.signup .form-group:nth-child(6) {
  570 + float: right;
  571 +}
  572 +
  573 +.signup div.form-group.alert {
  574 + padding: 0px 10px 10px 10px;
  575 +}
  576 +
  577 +.signup div.form-group.alert ul.errorlist {
  578 + padding-left: 15px;
  579 +}
  580 +
  581 +.signup-help {
  582 + font-size: 16px;
  583 + font-family: Arial;
  584 + padding-top: 7px;
  585 +
  586 + }
  587 +
  588 +a.btn {
  589 + margin: 2px 0 2px 0;
  590 +}
... ...
src/colab-spb-theme-plugin/colab_spb_theme/static/css/search.css
1 1  
2   -.search-form {
  2 +.colab-search-form {
3 3 margin-top: 28px;
4 4 padding-top: 0px;
5 5 padding-bottom: 15px;
... ... @@ -10,7 +10,7 @@
10 10 border: 1px solid #d3d6de;
11 11 }
12 12  
13   -.search-title {
  13 +.colab-search-title {
14 14 color: #3e67b1;
15 15 margin: 5px 0px 3px;
16 16 padding: 16px 0px 0px 0px;
... ... @@ -20,7 +20,7 @@
20 20 text-transform: uppercase;
21 21 }
22 22  
23   -.search-input {
  23 +.colab-search-input {
24 24 width: 100%;
25 25 padding: 7px;
26 26 font-size: 14px;
... ... @@ -30,7 +30,7 @@
30 30 border: 1px solid #d3d6de;
31 31 }
32 32  
33   -.search-blue {
  33 +.colab-search-blue {
34 34 background: #3e67b1;
35 35 color: white;
36 36 width: auto;
... ... @@ -43,6 +43,21 @@
43 43 font-size: 14px;
44 44 }
45 45  
  46 +.colab-search-results div.container div.row h4 a {
  47 + font-size: 19px;
  48 + font-weight: 700;
  49 + line-height: 21px;
  50 +}
  51 +
  52 +.colab-search-results div.container div.row a {
  53 + color: #172738;
  54 + text-decoration: none;
  55 +}
  56 +
  57 +.colab-search-results div.container div.row a:hover {
  58 + text-decoration: none;
  59 +}
  60 +
46 61 .btn:hover {
47 62 color: white;
48 63 }
... ... @@ -59,4 +74,9 @@
59 74 font-size: 14px;
60 75 font-family: Arial;
61 76 font-weight: bold;
62   -}
63 77 \ No newline at end of file
  78 +}
  79 +
  80 +.colab-result-register {
  81 + display: block;
  82 + padding-top: 40px;
  83 +}
... ...
src/colab-spb-theme-plugin/colab_spb_theme/templates/accounts/manage_subscriptions.html 0 → 100644
... ... @@ -0,0 +1,45 @@
  1 +{% extends 'base.html' %}
  2 +{% load i18n gravatar %}
  3 +
  4 +{% block main-content %}
  5 + <div class="colab-content container">
  6 + <h2>Inscreva-se nas listas de discussão</h2>
  7 + <h3>{% gravatar user_.email 50 %} {{ user_.get_full_name }} ({{ user_.username }})</h3>
  8 + <br>
  9 +
  10 + <form method='post'>
  11 + {% csrf_token %}
  12 +
  13 + <div class="row">
  14 + {% for email, lists in membership.items %}
  15 + <div class="col-lg-6 col-md-6 col-sm-6 col-xs-12">
  16 + <div class="panel panel-default">
  17 + <div class="panel-heading">
  18 + <h3 class="panel-title">{{ email }}</h3>
  19 + </div>
  20 + <div class="panel-body">
  21 + {% for list, checked in lists %}
  22 + <div class="checkbox" title="{{ list.description }}">
  23 + <label>
  24 + <input name="{{ email }}" value="{{ list.listname }}" type="checkbox" {% if checked %}checked{% endif%}>{{ list.listname }}</input>
  25 + </label>
  26 + </div>
  27 + {% endfor %}
  28 + </div>
  29 + </div>
  30 + </div>
  31 + {% endfor %}
  32 + </div>
  33 +
  34 + <div class="row">
  35 + <div class="col-md-12">
  36 + <button class="btn btn-lg btn-primary" type="submit">{% trans 'Update subscriptions' %}</button>
  37 + </div>
  38 + </div>
  39 +
  40 + </form>
  41 +
  42 + <br><br>
  43 + <br><br>
  44 + </div>
  45 +{% endblock %}
... ...
src/colab-spb-theme-plugin/colab_spb_theme/templates/accounts/user_create_form.html 0 → 100644
... ... @@ -0,0 +1,38 @@
  1 +{% extends "base.html" %}
  2 +{% load i18n %}
  3 +{% block main-content %}
  4 +<div class="colab-content container">
  5 + <h2>Cadastre-se</h2>
  6 + <h1>Informações pessoais</h1>
  7 +
  8 + <form action="{% url "signup" %}" method="post" role="form" class="form-horizontal signup">
  9 + {% csrf_token %}
  10 + <div class="row">
  11 + <div class="col-md-6 col-lg-6 col-sm-6 col-xs-12">
  12 + <fieldset>
  13 + {% for field in user_form %}
  14 + <div class="form-group{% if field.field.required %} required{% endif %}{% if field.errors %} alert alert-danger has-error{% endif %}">
  15 + <label for="{{ field.name }}" class="control-label">
  16 + {{ field.label }}
  17 + </label>
  18 + {{ field }}
  19 + {{ field.errors }}
  20 + </div>
  21 + {% endfor %}
  22 + </fieldset>
  23 +
  24 + <input type="submit" value="Cadastrar" id="btn-cadastrar" class="btn btn-primary">
  25 + </div>
  26 + <div class="col-md-6 col-lg-6 col-sm-6 col-xs-12">
  27 + <div style="border-left: 1px solid #ccc; padding-left: 52px; min-height: 450px">
  28 + <div class="signup-help">
  29 + <p>Em caso de dúvidas visite a seção de <a href="/social/spb/ajuda#faq">Ajuda</a></p>
  30 + <hr>
  31 + <p>Caso ainda permaneça com dúvidas, fique à vontade para entrar em contato conosco através do email <a href="mailto:admin@softwarepublico.gov.br">admin@softwarepublico.gov.br</a></p>
  32 + </div>
  33 + </div>
  34 + </div>
  35 + </div>
  36 + </form>
  37 +</div>
  38 +{% endblock %}
... ...
src/colab-spb-theme-plugin/colab_spb_theme/templates/accounts/user_detail.html 0 → 100644
... ... @@ -0,0 +1,164 @@
  1 +{% extends "base.html" %}
  2 +
  3 +{% load i18n gravatar %}
  4 +
  5 +{% block title %}Perfil{% endblock %}
  6 +
  7 +{% block head_js %}
  8 + {% trans "Messages" as group_collabs %}
  9 + {% trans "Contributions" as type_collabs %}
  10 +
  11 + {% include "doughnut-chart.html" with chart_data=type_count chart_canvas="collabs" name=type_collabs %}
  12 + {% include "doughnut-chart.html" with chart_data=list_activity chart_canvas="collabs2" name=group_collabs %}
  13 +{% endblock %}
  14 +
  15 +{% block main-content %}
  16 + <div class="colab-content container">
  17 + <div id="user-profile" class="row">
  18 + <div class="colab-vcard col-lg-4 col-md-4 col-sm-5">
  19 + <div class="thumbnail">
  20 + {% gravatar user_.email 200 %}
  21 + </div>
  22 +
  23 + <h1>
  24 + <span>{{ user_.get_full_name }}</span>
  25 + <em>{{ user_.username }}</em>
  26 + </h1>
  27 +
  28 + {% if request.user == user_ or request.user.is_superuser %}
  29 + <a class="btn btn-info" href="{% url 'user_profile_update' user_ %}"><span class="glyphicon glyphicon-pencil"></span>&nbsp;&nbsp;{% trans "edit profile"|title %}</a>
  30 + <a class="btn btn-info" href="{% url 'user_list_subscriptions' user_ %}"><span class="glyphicon glyphicon-pencil"></span>&nbsp;&nbsp;Inscreva-se nas listas de discussão</a>
  31 + {% endif %}
  32 +
  33 + {% if request.user.is_active %}
  34 + {% if user_.bio %}
  35 + <div class="divider"></div>
  36 + <ul class="unstyled-list">
  37 + <li>
  38 + <strong>{% trans 'Bio' %}</strong>
  39 + </li>
  40 + <li class="text-muted"> {{ user_.bio }}</li>
  41 + </ul>
  42 + {% endif %}
  43 + {% endif %}
  44 +
  45 + <div class="divider"></div>
  46 + {% if request.user.is_active %}
  47 + <ul class="unstyled-list">
  48 + <li><span class="icon-envelope icon-fixed-width"></span> <a href="mailto:{{ user_.email }}">{{ user_.email }}</a></li>
  49 + </ul>
  50 + <div class="divider"></div>
  51 + {% endif %}
  52 +
  53 + <ul class="unstyled-list">
  54 + {% if user_.institution or user_.role %}
  55 + <li>
  56 + <span class="icon-briefcase icon-fixed-width"></span>
  57 + {{ user_.role }}
  58 + {% if user_.institution and user_.role %}-{% endif %}
  59 + {{ user_.institution }}
  60 + </li>
  61 + {% endif %}
  62 + {% if request.user.is_active %}
  63 + {% if SOCIAL_NETWORK_ENABLED %}
  64 + <li>
  65 + {% if user_.twitter %}
  66 + <span class="icon-twitter icon-fixed-width" title="{% trans 'Twitter account' %}"></span> <a target="_blank" href="{{ user_.twitter_link }}" title="{% trans 'Twitter account' %}">{{ user_.twitter }}</a>
  67 + {% endif %}
  68 + {% if user_.facebook %}
  69 + <span class="icon-facebook icon-fixed-width" title="{% trans 'Facebook account' %}"></span> <a target="_blank" href="{{ user_.facebook_link }}" title="{% trans 'Facebook account' %}">{{ user_.facebook }}</a>
  70 + {% endif %}
  71 + </li>
  72 +
  73 + {% if user_.google_talk %}
  74 + <li><span class="icon-google-plus icon-fixed-width" title="{% trans 'Google talk account' %}"></span> {{ user_.google_talk }}</li>
  75 + {% endif %}
  76 +
  77 + {% if user_.github %}
  78 + <li><span class="icon-github icon-fixed-width" title="{% trans 'Github account' %}"></span> <a target="_blank" href="https://github.com/{{ user_.github }}">{{ user_.github }}</a></li>
  79 + {% endif %}
  80 +
  81 + {% if user_.webpage %}
  82 + <li><span class="icon-link icon-fixed-width" title="{% trans 'Personal webpage' %}"></span> <a target="_blank" href="{{ user_.webpage }}" title="{% trans 'Personal webpage' %}">{{ user_.webpage }}</a></li>
  83 + {% endif %}
  84 + {% endif %}
  85 + {% endif %}
  86 + </ul>
  87 + {% if user_.mailinglists %}
  88 + <b>Listas de discussão</b>
  89 + {% for list in user_.mailinglists %}
  90 + <a href="{% url 'haystack_search' %}?order=latest&amp;type=thread&amp;list={{ list }}"><span class="label label-primary">{{ list }}</span></a>
  91 + {% endfor %}
  92 + {% endif %}
  93 +
  94 + <div class="divider"></div>
  95 +
  96 + </div>
  97 +
  98 + <div class="col-lg-4 col-md-4 col-sm-7">
  99 + <div class="panel panel-default">
  100 + <div class="panel-heading">
  101 + <h3 class="panel-title">{% trans "Collaborations by Type" %}</h3>
  102 + </div>
  103 + <div class="panel-body">
  104 + <div id="collabs"></div>
  105 + <div class="chart collabs">
  106 + <canvas width="200" height="200"></canvas>
  107 + <p></p>
  108 + </div>
  109 + </div>
  110 + </div>
  111 + </div>
  112 +
  113 +
  114 + <div class="col-lg-4 col-md-4 col-sm-7">
  115 + <div class="panel panel-default">
  116 + <div class="panel-heading">
  117 + <h3 class="panel-title">Participação por lista de discussão</h3>
  118 + </div>
  119 + <div class="panel-body">
  120 + <div class="chart collabs2">
  121 + <canvas width="200" height="200"></canvas>
  122 + <p></p>
  123 + </div>
  124 + </div>
  125 + </div>
  126 + </div>
  127 +
  128 + </div> <!-- End of user-profile row -->
  129 +
  130 + <div class="row">
  131 +
  132 + <div class="col-lg-6 col-md-6 col-sm-12">
  133 + <h3>{% trans "Latest posted" %} </h3>
  134 + <ul class="message-list">
  135 + {% for doc in emails %}
  136 + {% include "message-preview.html" with result=doc %}
  137 + {% empty %}
  138 + <li>{% trans "There are no posts by this user so far." %}</li>
  139 + {% endfor %}
  140 + </ul>
  141 + <a href="{% url 'haystack_search' %}?type=thread&amp;author={{ user_.username }}">
  142 + {% trans "View more posts..." %}
  143 + </a>
  144 + <div>&nbsp;</div>
  145 + </div>
  146 +
  147 + <div class="col-lg-6 col-md-6 col-sm-12">
  148 + <h3>{% trans "Latest contributions" %}</h3>
  149 + <ul class="message-list">
  150 + {% for result in results %}
  151 + {% include "message-preview.html" %}
  152 + {% empty %}
  153 + <li>{% trans "No contributions of this user so far." %}</li>
  154 + {% endfor %}
  155 + </ul>
  156 + <a href="{% url 'haystack_search' %}?order=latest&amp;collaborators={{ user_.username }}">
  157 + {% trans "View more contributions..." %}
  158 + </a>
  159 + <div>&nbsp;</div>
  160 + </div>
  161 +
  162 + </div>
  163 + </div>
  164 +{% endblock %}
... ...
src/colab-spb-theme-plugin/colab_spb_theme/templates/header.html
... ... @@ -135,9 +135,19 @@
135 135 </div>
136 136 <div id="sobre">
137 137 <ul>
138   - <li id="softwarepublico-groups" class="softwarepublico-item">
139   - <a href="{% url 'thread_list' %}" title="Listas de discussão">Listas de discussão</a>
140   - </li>
  138 + {% if not user.is_authenticated %}
  139 + <li id="softwarepublico-groups" class="softwarepublico-item">
  140 + <a href="{% url 'thread_list' %}" title="Listas de discussão">Listas de discussão</a>
  141 + </li>
  142 + {% else %}
  143 + <li class="dropdown softwarepublico-item">
  144 + <a href="#" class="dropdown-toggle" data-toggle="dropdown">Listas de discussão <b class="caret"></b></a>
  145 + <ul class="dropdown-menu">
  146 + <li><a href="{% url 'thread_list' %}">Acesse todas as listas</a></li>
  147 + <li><a href="{% url 'user_list_subscriptions' user %}">Inscreva-se nas listas</a></li>
  148 + </ul>
  149 + </li>
  150 + {% endif %}
141 151 {% plugins_menu %}
142 152 <li id="softwarepublico-perguntas-frequentes" class="softwarepublico-item">
143 153 <a href="/social/spb/ajuda" title="Perguntas frequentes">Perguntas frequentes</a>
... ...
src/colab-spb-theme-plugin/colab_spb_theme/templates/search/search.html
1 1 {% extends "base.html" %}
2   -{% load i18n highlight superarchives %}
  2 +{% load i18n tz highlight superarchives search_preview_templates %}
3 3 {% load static from staticfiles %}
4 4  
5 5 {% block title %}{% trans 'search'|title %}{% endblock %}
... ... @@ -30,20 +30,20 @@
30 30 {% endblock %}
31 31  
32 32 {% block main-content %}
33   -<div class="search-results" style="width: 980px;margin: auto;">
  33 +<div class="colab-search-results" style="width: 980px;margin: auto;">
34 34  
35 35 <form accept-charset="UTF-8" action="/search/" method="get">
36 36 <div class="container">
37 37 <div class="row">
38 38 <div class="col-md-12">
39   - <div class="search-form">
40   - <h3 class="search-title"> {% trans "BUSCAR NO PORTAL" %} </h3>
41   - <div class="search-field">
  39 + <div class="colab-search-form">
  40 + <h3 class="colab-search-title"> {% trans "BUSCAR NO PORTAL" %} </h3>
  41 + <div class="colab-search-field">
42 42 <span class="formfield">
43   - <input class="search-input" id="search-input" name="q" value="" type="text">
  43 + <input class="colab-search-input" id="search-input" name="q" value="{{ request.GET.q }}" type="text">
44 44 </span>
45 45 </div>
46   - <input class="btn search-blue with-text icon-search submit" name="commit" value="Buscar" type="submit">
  46 + <input class="btn colab-search-blue with-text icon-search submit" name="commit" value="Buscar" type="submit">
47 47 </div>
48 48 </div>
49 49 </div>
... ... @@ -63,9 +63,9 @@
63 63 <select name="order" id="order_option" onchange="this.form.submit()">
64 64 {% for option, dict_order in order_data.items %}
65 65 {% ifequal request.GET.order option %}
66   - <option value="{{option}}" selected>{% trans option %}</option>
  66 + <option value="{{option}}" selected>{% trans dict_order.name %}</option>
67 67 {% else %}
68   - <option value="{{option}}">{% trans option %}</option>
  68 + <option value="{{option}}">{% trans dict_order.name %}</option>
69 69 {% endifequal %}
70 70 {% endfor %}
71 71 </select>
... ... @@ -80,7 +80,8 @@
80 80 <div class="col-md-12 col-lg-12">
81 81 <div class="container">
82 82 {% for result in page.object_list %}
83   - {% include "message-preview.html" %}
  83 + {% get_search_preview_templates result as template_target %}
  84 + {% include template_target %}
84 85 {% empty %}
85 86 <ul class="list-unstyled">
86 87 <li class="text-center">
... ... @@ -144,4 +145,4 @@
144 145  
145 146 </div>
146 147 </div>
147   -{% endblock main-content %}
148 148 \ No newline at end of file
  149 +{% endblock main-content %}
... ...
src/colab-spb-theme-plugin/colab_spb_theme/templates/superarchives/thread-dashboard.html 0 → 100644
... ... @@ -0,0 +1,101 @@
  1 +{% extends 'base.html' %}
  2 +{% load i18n %}
  3 +
  4 +{% block title %}Listas de discussão{% endblock %}
  5 +
  6 +{% block main-content %}
  7 + <div class="colab-content container">
  8 + <h2>Listas de discussão</h2>
  9 + <hr/>
  10 +
  11 + {% for mailinglist in lists %}
  12 + {% if mailinglist.get_latest or mailinglist.get_most_relevant %}
  13 + <h3><b>{{ mailinglist.name|title|lower }} {% if mailinglist.description %} ({{ mailinglist.description }}){% endif %}</b></h3>
  14 + <div class="btn-group btn-group-sm">
  15 + <a href="#" class="btn btn-default" disabled="disabled">{% blocktrans with number_of_users=mailinglist.get_number_of_users %}{{ number_of_users }} members{% endblocktrans %}</a>
  16 + </div>
  17 + <hr/>
  18 +
  19 + <div class="row">
  20 + <div class="col-lg-6 col-md-6 col-sm-12 col-xs-12">
  21 + <h4>{% trans 'latest'|title %}</h4>
  22 + <ul class="message-list">
  23 + {% for thread in mailinglist.get_latest %}
  24 + {% include "message-preview.html" with result=thread.latest_message %}
  25 + {% endfor %}
  26 + </ul>
  27 + <div class="text-right">
  28 + <a href="{% url 'haystack_search' %}?order=latest&list={{ mailinglist.name }}&type=thread">
  29 + {% trans "more..." %}
  30 + </a>
  31 + </div>
  32 + </div>
  33 +
  34 + <div class="col-lg-6 col-md-6 col-sm-12 col-xs-12">
  35 + <h4>{% trans 'most relevant'|title %}</h4>
  36 + <ul class="message-list">
  37 + {% for thread in mailinglist.get_most_relevant %}
  38 + {% include "message-preview.html" with result=thread %}
  39 + {% endfor %}
  40 + </ul>
  41 + <div class="text-right">
  42 + <a href="{% url 'haystack_search' %}?list={{ mailinglist.name }}&type=thread">
  43 + {% trans "more..." %}
  44 + </a>
  45 + </div>
  46 + </div>
  47 + </div>
  48 +
  49 +
  50 + {% endif %}
  51 + {% endfor %}
  52 +
  53 + {% if page_obj.has_other_pages %}
  54 + <div class="text-center">
  55 + <ul class="pagination">
  56 + <li {% if page_obj.number == 1 %}class="disabled"{% endif %}>
  57 + <a href="{% if page_obj.number == 1 %}javascript:void(0);{% else %}?page={{1}}{% endif %}"><span class="glyphicon glyphicon-chevron-left small-icon"></span><span class="glyphicon glyphicon-chevron-left small-icon"></span></a>
  58 + </li>
  59 + <li {% if not page_obj.has_previous %}class="disabled"{% endif %}>
  60 + <a href="{% if page_obj.has_previous %}?page={{page_obj.previous_page_number }}{% else %}javascript:void(0);{% endif %}"><span class="glyphicon glyphicon-chevron-left small-icon"></span></a>
  61 + </li>
  62 +
  63 + {% if page_obj.has_previous %}
  64 + {% if page_obj.previous_page_number > 1 %}
  65 + <li>
  66 + <a href="?page={{page_obj.previous_page_number|add:-2 }}">{{ page_obj.number|add:-2 }}</a>
  67 + </li>
  68 + {% endif %}
  69 + <li>
  70 + <a href="?page={{page_obj.previous_page_number }}">{{ page_obj.number|add:-1 }}</a>
  71 + </li>
  72 + {% endif %}
  73 +
  74 + <li class="active">
  75 + <a href="javascript:void(0);">{{ page_obj.number }}</a>
  76 + </li>
  77 +
  78 + {% if page_obj.has_next %}
  79 + <li>
  80 + <a href="?page={{page_obj.next_page_number }}">{{ page_obj.number|add:1 }}</a>
  81 + </li>
  82 + {% if page_obj.next_page_number < page_obj.paginator.num_pages %}
  83 + <li>
  84 + <a href="?page={{page_obj.next_page_number|add:1 }}">{{ page_obj.number|add:2 }}</a>
  85 + </li>
  86 + {% endif %}
  87 + {% endif %}
  88 +
  89 + <li {% if not page_obj.has_next %}class="disabled"{% endif %}>
  90 + <a href="{% if page_obj.has_next %}?page={{page_obj.next_page_number }}{% else %}javascript:void(0);{% endif %}"><span class="glyphicon glyphicon-chevron-right small-icon"></span></a>
  91 + </li>
  92 +
  93 + <li {% if page_obj.number == page_obj.paginator.num_pages %}class="disabled"{% endif %}>
  94 + <a href="{% if page_obj.number == page_obj.paginator.num_pages %}javascript:void(0);{% else %}?page={{page_obj.paginator.num_pages }}{% endif %}"><span class="glyphicon glyphicon-chevron-right small-icon"></span><span class="glyphicon glyphicon-chevron-right small-icon"></span></a>
  95 + </li>
  96 +
  97 + </ul>
  98 + </div>
  99 + {% endif %}
  100 + </div>
  101 +{% endblock %}
... ...
src/noosfero-spb/.gitignore
1 1 dist/
  2 +*.tar.gz
... ...
src/noosfero-spb/Makefile
1 1 PACKAGE = noosfero-spb
2   -VERSION = $(shell cat VERSION)
  2 +VERSION = 4.2.7
3 3 DISTDIR = $(PACKAGE)-$(VERSION)
4 4 TARBALL = $(DISTDIR).tar.gz
5 5  
... ... @@ -11,10 +11,9 @@ themes_dir=/usr/lib/noosfero/public/designs/themes
11 11 noosfero_dir=/usr/lib/noosfero
12 12  
13 13 dist: clean
14   - mkdir -p dist/$(DISTDIR)
15   - tar --exclude=.git --exclude=$(DISTDIR) -cf - * | (cd dist/$(DISTDIR) && tar xaf -)
16   - cd dist && tar --exclude=.git -czf $(TARBALL) $(DISTDIR)
17   - $(RM) -r dist/$(DISTDIR)
  14 + mkdir $(DISTDIR)
  15 + tar --exclude=.git --exclude=$(DISTDIR) -cf - * | (cd $(DISTDIR) && tar xaf -)
  16 + tar --exclude=.git -czf $(TARBALL) $(DISTDIR)
18 17  
19 18 clean:
20 19 $(RM) -r dist/
... ...
src/noosfero-spb/noosfero-spb-theme/categories.html.erb
... ... @@ -1,7 +0,0 @@
1   -<ul id="cat_menu">
2   - <% @environment.top_level_categories.find(:all, :conditions => {:display_in_menu => true}).each do |item| %>
3   - <li id="category category_<%= item.path %>" >
4   - <%= link_to(item.name, {:controller => :search, :action => 'category_index', :category_path => item.path }, :title => item.name, :style=>"color: ##{item.display_color || '000000'}" ) %>
5   - </li>
6   - <% end %>
7   -</ul><!-- fim id="cat_menu" -->
src/noosfero-spb/noosfero-spb-theme/css/search-pages.css
... ... @@ -160,4 +160,3 @@
160 160 text-align: center;
161 161 }
162 162  
163   -
... ...
src/noosfero-spb/noosfero-spb-theme/favicon.ico
No preview for this file type
src/noosfero-spb/noosfero-spb-theme/images/503-logo.jpg

9.42 KB

src/noosfero-spb/noosfero-spb-theme/images/503-small.jpg

70.1 KB

src/noosfero-spb/noosfero-spb-theme/images/503.jpg

174 KB

src/noosfero-spb/noosfero-spb-theme/images/acesso-a-infornacao.png

3.75 KB

src/noosfero-spb/noosfero-spb-theme/images/alerta-cadastro16.jpg

18.5 KB

src/noosfero-spb/noosfero-spb-theme/images/arrow_down.jpg

567 Bytes

src/noosfero-spb/noosfero-spb-theme/images/arrow_right.jpg

548 Bytes

src/noosfero-spb/noosfero-spb-theme/images/background_footer.png

230 Bytes

src/noosfero-spb/noosfero-spb-theme/images/balao-amarelo.png

2.54 KB

src/noosfero-spb/noosfero-spb-theme/images/barra-menu-user-bg.png

179 Bytes

src/noosfero-spb/noosfero-spb-theme/images/barra-psocial-bg-contarste.png

187 Bytes

src/noosfero-spb/noosfero-spb-theme/images/barra-psocial-bg.png

173 Bytes

src/noosfero-spb/noosfero-spb-theme/images/barra-psocial.png

14.3 KB

src/noosfero-spb/noosfero-spb-theme/images/bg-bloco-de-trilhas.png

245 KB

src/noosfero-spb/noosfero-spb-theme/images/bg-btn-ver-mais-1px.png

159 Bytes

src/noosfero-spb/noosfero-spb-theme/images/bg-fundo-verde-tags.png

1.02 KB

src/noosfero-spb/noosfero-spb-theme/images/bg-linhas-cinza.png

3.01 KB

src/noosfero-spb/noosfero-spb-theme/images/bg-menu-mobile-panel.png

1.47 KB

src/noosfero-spb/noosfero-spb-theme/images/bg-menu-mobile.png

3.13 KB

src/noosfero-spb/noosfero-spb-theme/images/bg-paginacao-preto.png

884 Bytes

src/noosfero-spb/noosfero-spb-theme/images/bg-paginacao.png

856 Bytes

src/noosfero-spb/noosfero-spb-theme/images/bg-palacio-do-planalto.jpg

95.1 KB

src/noosfero-spb/noosfero-spb-theme/images/bg-titulo-interno.png

142 Bytes

src/noosfero-spb/noosfero-spb-theme/images/bg-titulo-login.png

216 Bytes

src/noosfero-spb/noosfero-spb-theme/images/bg_h1.gif

35 Bytes

src/noosfero-spb/noosfero-spb-theme/images/bg_h3_busca.gif

43 Bytes

src/noosfero-spb/noosfero-spb-theme/images/bg_tags.png

305 Bytes

src/noosfero-spb/noosfero-spb-theme/images/border-hor.png

127 Bytes

src/noosfero-spb/noosfero-spb-theme/images/border-ver.png

128 Bytes

src/noosfero-spb/noosfero-spb-theme/images/botao-enviar-pairwise.png

1.85 KB

src/noosfero-spb/noosfero-spb-theme/images/btn_busca.png

969 Bytes

src/noosfero-spb/noosfero-spb-theme/images/btn_cancelar_login.png

333 Bytes

src/noosfero-spb/noosfero-spb-theme/images/btn_commit.png

969 Bytes

src/noosfero-spb/noosfero-spb-theme/images/btn_continue.png

1.01 KB

src/noosfero-spb/noosfero-spb-theme/images/btn_duvida_pairwise.png

2.85 KB

src/noosfero-spb/noosfero-spb-theme/images/btn_duvida_pairwise_hover.png

3.12 KB

src/noosfero-spb/noosfero-spb-theme/images/btn_entrar_login.png

445 Bytes

src/noosfero-spb/noosfero-spb-theme/images/btn_entrar_login_hover.png

448 Bytes

src/noosfero-spb/noosfero-spb-theme/images/bullet.png

174 Bytes

src/noosfero-spb/noosfero-spb-theme/images/button-read-more-vazio-contraste.png

648 Bytes

src/noosfero-spb/noosfero-spb-theme/images/button-read-more-vazio.png

648 Bytes

src/noosfero-spb/noosfero-spb-theme/images/button-read-more2.png

2.17 KB

src/noosfero-spb/noosfero-spb-theme/images/cabecalho_pairwise.png

52 KB

src/noosfero-spb/noosfero-spb-theme/images/carta-comentarios.png

771 Bytes

src/noosfero-spb/noosfero-spb-theme/images/chat-icon.png

391 Bytes

src/noosfero-spb/noosfero-spb-theme/images/coala.jpeg

5.21 KB

src/noosfero-spb/noosfero-spb-theme/images/comentarios.png

579 Bytes

src/noosfero-spb/noosfero-spb-theme/images/comunidade-evento-imagem-evento.jpg

23.7 KB

src/noosfero-spb/noosfero-spb-theme/images/comunidade-evento-imagem-evento.png

26.3 KB

src/noosfero-spb/noosfero-spb-theme/images/docs-board-icon.png

245 Bytes

src/noosfero-spb/noosfero-spb-theme/images/em-destaque.png

877 Bytes

src/noosfero-spb/noosfero-spb-theme/images/facebook-widget.png

2.46 KB

src/noosfero-spb/noosfero-spb-theme/images/facebook.png

624 Bytes

src/noosfero-spb/noosfero-spb-theme/images/favicon.ico
No preview for this file type
src/noosfero-spb/noosfero-spb-theme/images/flag-en.gif

538 Bytes

src/noosfero-spb/noosfero-spb-theme/images/flag-en.png

2.09 KB

src/noosfero-spb/noosfero-spb-theme/images/flag-es.gif

190 Bytes

src/noosfero-spb/noosfero-spb-theme/images/flag-pt_br.png

1.71 KB

src/noosfero-spb/noosfero-spb-theme/images/flickr.png

642 Bytes

src/noosfero-spb/noosfero-spb-theme/images/fundo-de-tela-amarelo.png

182 KB

src/noosfero-spb/noosfero-spb-theme/images/google_follow.png

2.04 KB

src/noosfero-spb/noosfero-spb-theme/images/google_follow.svg
... ... @@ -1,23 +0,0 @@
1   -<?xml version="1.0" encoding="iso-8859-1"?>
2   -<!-- Generator: Adobe Illustrator 15.1.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
3   -<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
4   -<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
5   - width="32px" height="32px" viewBox="0 0 32 32" style="enable-background:new 0 0 32 32;" xml:space="preserve">
6   -<circle id="circle_x5F_bg_17_" style="fill:#CF4832;" cx="16" cy="16" r="16.005"/>
7   -<g>
8   - <polygon style="fill:#FFFFFF;" points="24.376,9.896 22.499,9.896 22.499,13.646 18.747,13.646 18.747,15.523 22.499,15.523
9   - 22.499,19.273 24.376,19.273 24.376,15.523 28.126,15.523 28.126,13.646 24.376,13.646 "/>
10   -</g>
11   -<g>
12   - <path style="fill:#FFFFFF;" d="M14.933,25.068c-0.74-0.559-2.355-1.699-2.355-2.465c0-0.898,0.256-1.342,1.605-2.396
13   - c1.387-1.082,2.367-2.51,2.367-4.279c0-1.93-0.789-3.678-2.27-4.527h2.102l1.787-1.879c0,0-5.91,0-8.008,0
14   - c-4.061,0-7.447,2.996-7.447,6.291c0,3.367,2.225,6.051,6.045,6.051c0.264,0,0.523-0.01,0.775-0.027
15   - C9.286,22.309,9.11,22.84,9.11,23.395c0,0.938,0.518,1.473,1.148,2.09c-0.48,0-0.941,0.01-1.449,0.01
16   - c-1.805,0-3.395,0.486-4.67,1.254c0.396,0.436,0.814,0.85,1.254,1.238c1.1-0.949,2.709-1.561,4.471-1.541
17   - c0.748,0.004,1.449,0.127,2.082,0.332c1.746,1.215,3.156,1.971,3.508,3.357c0.066,0.275,0.102,0.566,0.102,0.861
18   - c0,0.34-0.033,0.666-0.098,0.982c0.174,0.006,0.342,0.025,0.518,0.025c0.639,0,1.264-0.047,1.883-0.119
19   - c0.119-0.406,0.186-0.818,0.186-1.232C18.044,28.225,17.521,27.008,14.933,25.068z M10.306,20.645
20   - c-2.156-0.066-4.209-2.049-4.58-4.881c-0.375-2.834,1.07-5.004,3.23-4.939c2.158,0.064,4.004,2.389,4.377,5.223
21   - S12.464,20.707,10.306,20.645z"/>
22   -</g>
23   -</svg>
src/noosfero-spb/noosfero-spb-theme/images/hdot2.gif

43 Bytes

src/noosfero-spb/noosfero-spb-theme/images/header.gif

279 Bytes

src/noosfero-spb/noosfero-spb-theme/images/hub-arrow-right.png

349 Bytes