Aligned branch internationalization with latest changes in master
authorLeonidas Poulopoulos <leopoul@noc.grnet.gr>
Thu, 3 May 2012 08:10:22 +0000 (11:10 +0300)
committerLeonidas Poulopoulos <leopoul@noc.grnet.gr>
Thu, 3 May 2012 08:10:22 +0000 (11:10 +0300)
1  2 
flowspec/forms.py
flowspec/views.py
locale/el/LC_MESSAGES/django.mo
locale/el/LC_MESSAGES/django.po
templates/apply.html
templates/base.html
templates/error.html
templates/footer.html
templates/profile.html
templates/user_routes.html
urls.py.dist

@@@ -116,20 -131,20 +131,20 @@@ class RouteForm(forms.ModelForm)
                  if IPNetwork(destination) in net:
                      mynetwork = True
              if not mynetwork:
-                  raise forms.ValidationError(_('Destination address/network should belong to your administrative address space. Check My Profile to review your networks'))
 -                raise forms.ValidationError('Destination address/network should belong to your administrative address space. Check My Profile to review your networks')
++                raise forms.ValidationError(_('Destination address/network should belong to your administrative address space. Check My Profile to review your networks'))
          if (sourceports and ports):
 -            raise forms.ValidationError('Cannot create rule for source ports and ports at the same time. Select either ports or source ports')
 +            raise forms.ValidationError(_('Cannot create rule for source ports and ports at the same time. Select either ports or source ports'))
          if (destinationports and ports):
 -            raise forms.ValidationError('Cannot create rule for destination ports and ports at the same time. Select either ports or destination ports')
 +            raise forms.ValidationError(_('Cannot create rule for destination ports and ports at the same time. Select either ports or destination ports'))
          if sourceports and not source:
 -            raise forms.ValidationError('Once source port is matched, source has to be filled as well. Either deselect source port or fill source address')
 +            raise forms.ValidationError(_('Once source port is matched, source has to be filled as well. Either deselect source port or fill source address'))
          if destinationports and not destination:
 -            raise forms.ValidationError('Once destination port is matched, destination has to be filled as well. Either deselect destination port or fill destination address')
 +            raise forms.ValidationError(_('Once destination port is matched, destination has to be filled as well. Either deselect destination port or fill destination address'))
          if not (source or sourceports or ports or destination or destinationports):
 -            raise forms.ValidationError('Fill at least a Rule Match Condition')
 +            raise forms.ValidationError(_('Fill at least a Rule Match Condition'))
          if not user.is_superuser and then[0].action not in settings.UI_USER_THEN_ACTIONS:
 -            raise forms.ValidationError('This action "%s" is not permitted' %(then[0].action))
 +            raise forms.ValidationError(_('This action "%s" is not permitted') %(then[0].action))
-         existing_routes = Route.objects.exclude(status='EXPIRED').exclude(status='ERROR').exclude(status='ADMININACTIVE')
+         existing_routes = Route.objects.all()
          existing_routes = existing_routes.filter(applier__userprofile__peer=peer)
          if source:
              source = IPNetwork(source).compressed
@@@ -80,10 -85,10 +86,10 @@@ def add_route(request)
      applier_peer_networks = request.user.get_profile().peer.networks.all()
      if not applier_peer_networks:
           messages.add_message(request, messages.WARNING,
 -                             "Insufficient rights on administrative networks. Cannot add rule. Contact your administrator")
 +                             _("Insufficient rights on administrative networks. Cannot add rule. Contact your administrator"))
           return HttpResponseRedirect(reverse("group-routes"))
      if request.method == "GET":
-         form = RouteForm()
+         form = RouteForm(initial={'applier': applier})
          if not request.user.is_superuser:
              form.fields['then'] = forms.ModelMultipleChoiceField(queryset=ThenAction.objects.filter(action__in=settings.UI_USER_THEN_ACTIONS).order_by('action'), required=True)
              form.fields['protocol'] = forms.ModelMultipleChoiceField(queryset=MatchProtocol.objects.filter(protocol__in=settings.UI_USER_PROTOCOLS).order_by('protocol'), required=False)
@@@ -123,9 -144,9 +145,9 @@@ def edit_route(request, route_slug)
      applier_peer = request.user.get_profile().peer
      route_edit = get_object_or_404(Route, name=route_slug)
      route_edit_applier_peer = route_edit.applier.get_profile().peer
-     if applier_peer != route_edit_applier_peer:
+     if applier_peer != route_edit_applier_peer and (not request.user.is_superuser):
          messages.add_message(request, messages.WARNING,
 -                             "Insufficient rights to edit rule %s" %(route_slug))
 +                             _("Insufficient rights to edit rule %s") %(route_slug))
          return HttpResponseRedirect(reverse("group-routes"))
  #    if route_edit.status == "ADMININACTIVE" :
  #        messages.add_message(request, messages.WARNING,
index 52e85dd,0000000..d90918f
mode 100644,000000..100644
Binary files differ
index e8a3dd3,0000000..a6be0eb
mode 100644,000000..100644
--- /dev/null
@@@ -1,899 -1,0 +1,804 @@@
 +# Translation file for FoD application.
 +# Copyright (C) 2012
 +# This file is distributed under the same license as the PACKAGE package.
 +# Leonidas Poulopoulos <leopoul@grnet.gr>, 2012.
 +#
 +#, fuzzy
 +msgid ""
 +msgstr ""
 +"Project-Id-Version: PACKAGE VERSION\n"
 +"Report-Msgid-Bugs-To: \n"
- "POT-Creation-Date: 2012-02-24 11:23+0200\n"
++"POT-Creation-Date: 2012-05-03 11:07+0300\n"
 +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 +"Last-Translator: Leonidas Poulopoulos <leopoul@grnet.gr>\n"
 +"Language-Team: LANGUAGE <LL@li.org>\n"
 +"Language: \n"
 +"MIME-Version: 1.0\n"
 +"Content-Type: text/plain; charset=UTF-8\n"
 +"Content-Transfer-Encoding: 8bit\n"
 +"Plural-Forms: nplurals=2; plural=(n != 1);\n"
 +
 +#: settings.py:49
 +msgid "Greek"
 +msgstr "Ελληνικά"
 +
 +#: settings.py:50
 +msgid "English"
 +msgstr "Αγγλικά"
 +
 +#: accounts/views.py:22
 +#, python-format
 +msgid "%sUser account activated"
 +msgstr "%s Ενεργοποιήθηκε ο λογαριασμός του χρήστη"
 +
- #: flowspec/forms.py:52 flowspec/forms.py:81
++#: flowspec/forms.py:60 flowspec/forms.py:89
 +msgid "Invalid network address format"
 +msgstr "Λανθασμένη μορφή διεύθυνσης δικυου στο πεδίο Πηγή"
 +
- #: flowspec/forms.py:54
++#: flowspec/forms.py:62
 +msgid "Private addresses not allowed"
 +msgstr "Δεν επιτρέπονται οι private διευθύνσεις"
 +
- #: flowspec/forms.py:56 flowspec/forms.py:85
++#: flowspec/forms.py:64 flowspec/forms.py:93
 +msgid "You have no authority on this subnet"
 +msgstr "Δεν έχετε δικαιώματα σε αυτό το υποδίκτυο"
 +
- #: flowspec/forms.py:77
++#: flowspec/forms.py:85
 +#, python-format
 +msgid "Currently no prefix lengths < %s are allowed"
 +msgstr "Προς το παρόν δεν επιτρέπονται υποδίκτυα <%s"
 +
- #: flowspec/forms.py:99
++#: flowspec/forms.py:107
 +msgid "Errors in form. Please review and fix them"
 +msgstr "Σφάλματα στη φόρμα. Παρακαλώ διορθώστε τα"
 +
- #: flowspec/forms.py:119
++#: flowspec/forms.py:134
 +msgid ""
 +"Destination address/network should belong to your administrative address "
 +"space. Check My Profile to review your networks"
 +msgstr ""
 +"Η διεύθυνση προορισμού πρέπει να ανήκει στα διαχειριστικά σας δίκτυα. "
 +"Επισκεφθείτε 'Το Προφίλ μου' για την προβολή των διαχειριστικών σας δικτύων"
 +
- #: flowspec/forms.py:121
++#: flowspec/forms.py:136
 +msgid ""
 +"Cannot create rule for source ports and ports at the same time. Select "
 +"either ports or source ports"
- msgstr "Δεν μπορεί να δημιουργηθεί φίλτρο για source ports και ports ταυτόχρονα. Επιλέξτε είτε ports είτε source ports"
++msgstr ""
++"Δεν μπορεί να δημιουργηθεί φίλτρο για source ports και ports ταυτόχρονα. "
++"Επιλέξτε είτε ports είτε source ports"
 +
- #: flowspec/forms.py:123
++#: flowspec/forms.py:138
 +msgid ""
 +"Cannot create rule for destination ports and ports at the same time. Select "
 +"either ports or destination ports"
- msgstr "Δεν μπορεί να δημιουργηθεί φίλτρο για destination ports και ports ταυτόχρονα. Επιλέξτε είτε ports είτε destination ports"
++msgstr ""
++"Δεν μπορεί να δημιουργηθεί φίλτρο για destination ports και ports "
++"ταυτόχρονα. Επιλέξτε είτε ports είτε destination ports"
 +
- #: flowspec/forms.py:125
++#: flowspec/forms.py:140
 +msgid ""
 +"Once source port is matched, source has to be filled as well. Either "
 +"deselect source port or fill source address"
- msgstr "Εφόσον έχετε επιλέξει source port, το πεδίο source πρέπει να συμπληρωθεί. Είτε απο-επιλέξτε το πεδίο source port είτε συμπληρώστε μια διεύθυνση στο source"
++msgstr ""
++"Εφόσον έχετε επιλέξει source port, το πεδίο source πρέπει να συμπληρωθεί. "
++"Είτε απο-επιλέξτε το πεδίο source port είτε συμπληρώστε μια διεύθυνση στο "
++"source"
 +
- #: flowspec/forms.py:127
++#: flowspec/forms.py:142
 +msgid ""
 +"Once destination port is matched, destination has to be filled as well. "
 +"Either deselect destination port or fill destination address"
- msgstr "Εφόσον έχετε επιλέξει destination port, το πεδίο destination πρέπει να συμπληρωθεί. Είτε απο-επιλέξτε το πεδίο destination port είτε συμπληρώστε μια διεύθυνση στο destination"
++msgstr ""
++"Εφόσον έχετε επιλέξει destination port, το πεδίο destination πρέπει να "
++"συμπληρωθεί. Είτε απο-επιλέξτε το πεδίο destination port είτε συμπληρώστε "
++"μια διεύθυνση στο destination"
 +
- #: flowspec/forms.py:129
++#: flowspec/forms.py:144
 +msgid "Fill at least a Rule Match Condition"
 +msgstr "Συμπληρώστε τουλάχιστον έναν όρο ταύτισης"
 +
- #: flowspec/forms.py:131
++#: flowspec/forms.py:146
 +#, python-format
 +msgid "This action \"%s\" is not permitted"
 +msgstr "Η ενέργεια %s δεν επιτρέπεται"
 +
- #: flowspec/forms.py:183
++#: flowspec/forms.py:198
 +msgid "Rate-limiting cannot be < 50kbps"
 +msgstr ""
 +
- #: flowspec/forms.py:186
++#: flowspec/forms.py:201
 +msgid "Rate-limiting should be an integer < 50"
 +msgstr ""
 +
- #: flowspec/forms.py:188 flowspec/forms.py:212
++#: flowspec/forms.py:203 flowspec/forms.py:227
 +msgid "Cannot be empty"
 +msgstr "Το πεδίο δεν μπορεί να είναι κενό"
 +
- #: flowspec/forms.py:193
++#: flowspec/forms.py:208
 +msgid "Cannot select something other than rate-limit"
 +msgstr ""
 +
- #: flowspec/forms.py:210
++#: flowspec/forms.py:225
 +msgid "Port should be an integer"
 +msgstr "Η port θα πρέπει να είναι ένας ακέραιος αριθμός"
 +
- #: flowspec/models.py:103 templates/user_routes.html:273
- msgid "Then"
- msgstr "Ενέργειες"
- #: flowspec/models.py:108 templates/review.html:49
- #: templates/review.html.py:107 templates/user_routes.html:271
++#: flowspec/models.py:107 templates/user_routes.html:265
 +msgid "Name"
 +msgstr "Όνομα"
 +
- #: flowspec/models.py:110 flowspec/models.py:112
++#: flowspec/models.py:109 flowspec/models.py:111
 +msgid "Network address. Use address/CIDR notation"
 +msgstr "Διεύθυνση δικτύου/υποδικτύου. Χρησιμοποιήστε σύνταξη διεύθυνσης/CIDR"
 +
- #: flowspec/models.py:110
++#: flowspec/models.py:109
 +msgid "Source Address"
- msgstr ""
++msgstr "Διεύθυνση Πηγής"
 +
- #: flowspec/models.py:111
++#: flowspec/models.py:110
 +msgid "Source Port"
- msgstr ""
++msgstr "Port Πηγής"
 +
- #: flowspec/models.py:112
++#: flowspec/models.py:111
 +msgid "Destination Address"
- msgstr ""
++msgstr "Διεύθυνση Προορισμού"
 +
- #: flowspec/models.py:113
++#: flowspec/models.py:112
 +msgid "Destination Port"
- msgstr ""
++msgstr "Port Προορισμού"
 +
- #: flowspec/models.py:114 templates/add_port.html:14 templates/apply.html:308
- #: templates/apply.html.py:327 templates/apply.html:346
++#: flowspec/models.py:113 templates/add_port.html:14 templates/apply.html:326
++#: templates/apply.html.py:345 templates/apply.html:364
 +msgid "Port"
 +msgstr ""
 +
- #: flowspec/models.py:120
++#: flowspec/models.py:119
 +msgid "Protocol"
 +msgstr "Πρωτόκολλο"
 +
- #: flowspec/models.py:125 templates/user_routes.html:274
++#: flowspec/models.py:121 templates/user_routes.html:267
++msgid "Then"
++msgstr "Ενέργειες"
++
++#: flowspec/models.py:124 templates/user_routes.html:268
 +msgid "Status"
 +msgstr "Κατάσταση"
 +
- #: flowspec/models.py:128 templates/user_routes.html:277
++#: flowspec/models.py:127 templates/user_routes.html:271
 +msgid "Expires"
 +msgstr "Λήγει"
 +
- #: flowspec/models.py:129 templates/user_routes.html:278
++#: flowspec/models.py:128 templates/user_routes.html:272
 +msgid "Response"
 +msgstr "Απόκριση Δικτύου"
 +
- #: flowspec/models.py:130 templates/review.html:57
- #: templates/review.html.py:115
++#: flowspec/models.py:129
 +msgid "Comments"
 +msgstr "Σχόλια"
 +
- #: flowspec/models.py:155
++#: flowspec/models.py:154
 +msgid "Invalid network address format at Destination Field"
 +msgstr "Λανθασμένη μορφή διεύθυνσης δικυου στο πεδίο Προορισμός"
 +
- #: flowspec/models.py:161
++#: flowspec/models.py:160
 +msgid "Invalid network address format at Source Field"
 +msgstr "Λανθασμένη μορφή διεύθυνσης δικυου στο πεδίο Πηγή"
 +
- #: flowspec/views.py:83
++#: flowspec/views.py:89
 +msgid ""
 +"Insufficient rights on administrative networks. Cannot add rule. Contact "
 +"your administrator"
- msgstr "Μη επαρκή δικαιώματα στα διαχειριστικά δίκτυα. Η προσθήκη φίλτρων δεν είναι εφικτή. Επικοινωνήστε με το διαχειριστή σας"
++msgstr ""
++"Μη επαρκή δικαιώματα στα διαχειριστικά δίκτυα. Η προσθήκη φίλτρων δεν είναι "
++"εφικτή. Επικοινωνήστε με το διαχειριστή σας"
 +
- #: flowspec/views.py:128
++#: flowspec/views.py:150
 +#, python-format
 +msgid "Insufficient rights to edit rule %s"
 +msgstr "Μη επαρκή δικαιώματα για την επεξεργασία του φίλτρου %s"
 +
- #: flowspec/views.py:140
++#: flowspec/views.py:162
 +#, python-format
 +msgid "Cannot edit a pending rule: %s."
 +msgstr "Δεν είναι δυνατή η επεξεργασία ενός φίλτρου (%s) σε κατάσταση pending "
 +
- #: flowspec/views.py:242
++#: flowspec/views.py:304
 +msgid ""
 +"Your idP should release the HTTP_EPPN attribute towards this service<br>"
 +msgstr ""
 +"Ο idP σας θα πρέπει να παρέχει την HTTP_EPPN παράμετερο στην υπηρεσία<br>"
 +
- #: flowspec/views.py:244
++#: flowspec/views.py:306
 +msgid ""
 +"Your idP should release the HTTP_SHIB_HOMEORGANIZATION attribute towards "
 +"this service<br>"
 +msgstr ""
 +"Ο idP σας θα πρέπει να παρέχει την HTTP_SHIB_HOMEORGANIZATION παράμετερο "
 +"στην υπηρεσία<br>"
 +
- #: flowspec/views.py:246
++#: flowspec/views.py:308
 +msgid ""
 +"Your idP should release an appropriate HTTP_SHIB_EP_ENTITLEMENT attribute "
 +"towards this service<br>"
 +msgstr ""
 +"Ο idP σας θα πρέπει να παρέχει την HTTP_SHIB_EP_ENTITLEMENT παράμετερο στην "
 +"υπηρεσία<br>"
 +
- #: flowspec/views.py:248
++#: flowspec/views.py:310
 +msgid ""
 +"Your idP should release the HTTP_SHIB_INETORGPERSON_MAIL attribute towards "
 +"this service"
 +msgstr ""
 +"Ο idP σας θα πρέπει να παρέχει την HTTP_SHIB_INETORGPERSON_MAIL παράμετερο "
 +"στην υπηρεσία<br>"
 +
- #: flowspec/views.py:263
++#: flowspec/views.py:329
 +msgid ""
 +"Your organization's domain name does not match our peers' domain "
 +"names<br>Please contact Helpdesk to resolve this issue"
 +msgstr ""
 +"Το domain name του οργανισμού σας δε βρέθηκε στ βάση φορέων μας.<br>Παρακαλώ "
 +"επικοινωνήστε με το Helpdesk για τη διευθέτηση του προβλήματος"
 +
- #: flowspec/views.py:271
++#: flowspec/views.py:337
 +#, python-format
 +msgid ""
 +"User account <strong>%s</strong> is pending activation. Administrators have "
 +"been notified and will activate this account within the next days. <br>If "
 +"this account has remained inactive for a long time contact your technical "
 +"coordinator or GRNET Helpdesk"
 +msgstr ""
 +"Ο λογαριασμός χρήστη <strong>%s</strong> απαιτεί ενεργοποίηση. Οι "
 +"διαχειριστές της υπηρεσίας έχουν ενημερωθεί και θα ενεργοποιήσουν το "
 +"λογαριασμό εντός των επόμενων ημερών. <br>Εάν ο λογαριασμός δεν έχει "
 +"ενεργοποιηθεί για μεγάλο χρονικό διάστημα, επικοινωνήστε με τον τεχνικό σας "
 +"υπέυθυνο ή το Helpdesk του ΕΔΕΤ."
 +
- #: flowspec/views.py:275
++#: flowspec/views.py:341
 +msgid ""
 +"Something went wrong during user authentication. Contact your administrator"
 +msgstr ""
 +"Παρουσιάστηκε ένα σφάλμα κατά την είσοδο του χρήστη. Επικοινωνήστε με το "
 +"διαχειριστή σας"
 +
- #: flowspec/views.py:279
++#: flowspec/views.py:345
 +msgid "Invalid login procedure"
 +msgstr "Εσφαλμένη διαδικασία εισόδου"
 +
 +#: monkey_patch/forms.py:11
 +#, python-format
 +msgid ""
 +"Required, %s characters or fewer. Only letters, numbers, and characters such "
 +"as @.+_- are allowed."
 +msgstr ""
 +
 +#: monkey_patch/models.py:11
 +#, python-format
 +msgid ""
 +"Required, %s characters or fewer. Only letters, numbers, and @, ., +, -, or "
 +"_ characters."
 +msgstr ""
 +
- #: templates/application_list.html:3
- msgid "Application submitted"
- msgstr ""
- #: templates/application_list.html:7
- msgid "Pending applications"
- msgstr ""
- #: templates/application_list.html:9 templates/application_list.html.py:18
- msgid "Hostname"
- msgstr ""
- #: templates/application_list.html:9 templates/application_list.html.py:18
- msgid "User"
- msgstr ""
- #: templates/application_list.html:9 templates/application_list.html.py:18
- msgid "Memory"
- msgstr ""
- #: templates/application_list.html:9 templates/application_list.html.py:18
- msgid "vCPUs"
- msgstr ""
- #: templates/application_list.html:9 templates/application_list.html.py:18
- #: templates/review.html:72
- msgid "Network"
- msgstr ""
- #: templates/application_list.html:9 templates/application_list.html.py:18
- msgid "Filed"
- msgstr ""
- #: templates/application_list.html:16
- msgid "Completed applications"
- msgstr ""
 +#: templates/apply.html:6
 +msgid "Edit Rule"
 +msgstr "Επεξεργασία φίλτρου"
 +
 +#: templates/apply.html:8
 +msgid "Create new Rule"
 +msgstr "Δημιουργία νέου Φίλτρου"
 +
 +#: templates/apply.html:14 templates/apply.html.py:228
 +msgid "Edit rule"
 +msgstr "Επεξεργασία φίλτρου"
 +
 +#: templates/apply.html:16
 +msgid "Create rule"
 +msgstr "Δημιουργία φίλτρου"
 +
 +#: templates/apply.html:35 templates/apply.html.py:67
 +msgid "Add"
 +msgstr "Προσθήκη"
 +
 +#: templates/apply.html:55 templates/apply.html.py:88
 +#: templates/user_routes.html:32
 +msgid "Cancel"
 +msgstr "Άκυρο"
 +
 +#: templates/apply.html:229
 +msgid "Apply for a new rule"
 +msgstr "Αίτηση δημιουργίας νέου φίλτρου"
 +
 +#: templates/apply.html:242
 +msgid "Rule Basic Info"
 +msgstr "Βασικές Πληροφορίες Φίλτρου"
 +
- #: templates/apply.html:261
++#: templates/apply.html:262
++msgid "Admin Options"
++msgstr "Επιλογές Διαχείρισης"
++
++#: templates/apply.html:280
 +msgid "Rule Match Conditions"
 +msgstr "Όροι ταύτισης φίλτρου"
 +
- #: templates/apply.html:297
++#: templates/apply.html:315
 +msgid "Advanced Settings (Ports)"
 +msgstr "Προηγμένες Ρυθμίσεις (Ports)"
 +
- #: templates/apply.html:299
++#: templates/apply.html:317
 +msgid ""
 +"Select source/destination port(s), or select common port(s) for both source/"
 +"destination"
 +msgstr ""
 +
- #: templates/apply.html:364
++#: templates/apply.html:382
 +msgid "Rule Actions"
 +msgstr "Ενέργειες Φίλτρου"
 +
- #: templates/apply.html:380
++#: templates/apply.html:398
 +msgid "Expiration"
 +msgstr "Λήξη"
 +
- #: templates/apply.html:394
++#: templates/apply.html:412
 +msgid "Use/Comments"
 +msgstr "Χρήση/Σχόλια"
 +
- #: templates/apply.html:397
++#: templates/apply.html:415
 +msgid ""
 +"Give a short description of the intended use of this rule, that justifies "
 +"the parameter selection above. Feel free to include any additional comments."
 +msgstr ""
 +
- #: templates/apply.html:408
++#: templates/apply.html:426
 +msgid "Apply"
 +msgstr "Εφαρμογή"
 +
- #: templates/apply.html:415
++#: templates/apply.html:433
 +msgid "Add new port"
- msgstr ""
++msgstr "Νέα port"
 +
- #: templates/base.html:40 templates/error.html:56 templates/welcome.html:7
++#: templates/base.html:41 templates/error.html:39 templates/welcome.html:7
 +msgid "Welcome"
 +msgstr "Καλωσήρθατε"
 +
- #: templates/base.html:54 templates/error.html:68 templates/profile.html:4
- #: templates/profile.html.py:6
++#: templates/base.html:55 templates/error.html:42 templates/profile.html:4
++#: templates/profile.html.py:5 templates/profile.html:7
 +msgid "My profile"
 +msgstr "Το προφίλ μου"
 +
- #: templates/base.html:56 templates/error.html:70
++#: templates/base.html:57 templates/error.html:44
 +msgid "Admin"
 +msgstr "Διαχειριστής"
 +
- #: templates/base.html:58 templates/error.html:72
++#: templates/base.html:59 templates/error.html:46
 +msgid "Logout"
 +msgstr "Έξοδος"
 +
- #: templates/base.html:60 templates/welcome.html:17
++#: templates/base.html:61 templates/welcome.html:17
 +msgid "Shibboleth Login"
 +msgstr "Είσοδος με Shibboleth"
 +
- #: templates/base.html:68 templates/user_routes.html:230
- #: templates/user_routes.html.py:234
++#: templates/base.html:70 templates/user_routes.html:225
++#: templates/user_routes.html.py:229
 +msgid "My rules"
 +msgstr "Τα φίλτρα μου"
 +
- #: templates/base.html:86 templates/error.html:117
- msgid ""
- "If you have any questions or need help, contact GRNET Helpdesk at <a "
- "href='mailto:helpdesk@grnet.gr'>helpdesk@grnet.gr</a> or 800-11-47638."
- msgstr ""
- "Eάν χρειάζεστε διευκρινήσεις ή βοήθεια, επικοινωνήστε με το Helpdesk του "
- "ΕΔΕΤ στο <a href='mailto:helpdesk@grnet.gr'>helpdesk@grnet.gr</a> ή "
- "τηλεφωνικά στο 800-11-47638."
- #: templates/base.html:88 templates/error.html:119
- msgid "GRNET"
- msgstr "ΕΔΕΤ"
- #: templates/base.html:88 templates/error.html:119 templates/getinfo.html:27
- #: templates/getinfo.html.py:28
- msgid "Info"
- msgstr "Πληροφορίες"
- #: templates/base.html:88 templates/error.html:119
- msgid "Service Terms"
- msgstr "Όροι Χρήσης"
- #: templates/error.html:4 templates/error.html.py:88
++#: templates/error.html:4 templates/error.html.py:53
 +msgid "Activation Pending"
 +msgstr "Απαιτείται Ενεργοποίηση"
 +
- #: templates/error.html:4 templates/error.html.py:88
++#: templates/error.html:4 templates/error.html.py:53
 +msgid "Error"
 +msgstr "Σφάλμα"
 +
- #: templates/error.html:74
- msgid ""
- "After clicking Retry Login, it is strongly suggested to close your browser "
- "and visit the page again"
- msgstr ""
- "Αφού επιλέξετε Επανάληψη Εισόδου, προτείνουμε να κλείσετε την εφαρμογή "
- "περιήγησης και να επισκεφθέιτε τη σελίδα ξανά"
- #: templates/error.html:74
++#: templates/error.html:48
 +msgid "Retry Login"
 +msgstr "Επανάληψη Εισόδου"
 +
- #: templates/error.html:82
- msgid "My routes"
- msgstr "Τα φίλτρα μου"
- #: templates/error.html:91
++#: templates/error.html:56
 +msgid ""
 +"One or more required shibboleth attributes were not released towards this "
 +"service"
 +msgstr "Ένα ή περισσότερα Shibboleth attributes δεν προωθήθηκαν στην υπηρεσία"
 +
- #: templates/error.html:96
++#: templates/error.html:61
 +msgid "Required shibboleth attributes"
 +msgstr "Απαιτούμενα Shibboleth attributes "
 +
- #: templates/error.html:103
++#: templates/error.html:68
 +msgid "Optional"
 +msgstr "Προεραιτικά"
 +
++#: templates/footer.html:4
++msgid ""
++"If you have any questions or need help, contact GRNET Helpdesk at <a "
++"href='mailto:helpdesk@grnet.gr'>helpdesk@grnet.gr</a> or 800-11-47638."
++msgstr ""
++"Eάν χρειάζεστε διευκρινήσεις ή βοήθεια, επικοινωνήστε με το Helpdesk του "
++"ΕΔΕΤ στο <a href='mailto:helpdesk@grnet.gr'>helpdesk@grnet.gr</a> ή "
++"τηλεφωνικά στο 800-11-47638."
++
++#: templates/footer.html:6
++msgid "GRNET"
++msgstr "ΕΔΕΤ"
++
++#: templates/footer.html:6 templates/getinfo.html:27
++#: templates/getinfo.html.py:28
++msgid "Info"
++msgstr "Πληροφορίες"
++
++#: templates/footer.html:6
++msgid "Service Terms"
++msgstr "Όροι Χρήσης"
++
 +#: templates/getinfo.html:33
 +msgid "Intro"
 +msgstr "Εισαγωγή"
 +
 +#: templates/getinfo.html:34
 +msgid ""
 +"Firewall on Demand service provides potential users (educational and "
 +"academic community) the option to protect their networking equipment against "
 +"network attacks and threats.\n"
 +"\n"
 +"In particular, the service is targeted at network operators of GRNET's "
 +"institutions who have needs for short-term protection against network "
 +"attacks with destination, equipment they operate.\n"
 +"To ensure the integrity of the service and in order to prevent the service "
 +"being a source of attacks, the authentication of users is done via "
 +"Shibboleth. The authorisation is based on a combination of Shibboleth "
 +"attributes with the address space that each organization manages.\n"
 +"The software chosen to implement the service is solely based on open "
 +"source.\n"
 +"Requests or clarifications concerning the operation of the service should be "
 +"submitted to GRNET Helpdesk via phone at 800-11-47638 or via e-mail to "
 +"helpdesk-at-grnet.gr.\n"
 +"\n"
 +"\n"
 +msgstr ""
 +"Η υπηρεσία FoD (Firewall on Demand) παρέχει στην εκπαιδευτική και ακαδημαϊκή "
 +"κοινότητα τη δυνατότητα για προστασία έναντι δικτυακών επιθέσεων που "
 +"στοχέυουν στο δικτυακό εξοπλισμό που διαχειρίζονται.\n"
 +"Ειδικότερα, η υπηρεσία απευθύνεται στα NOC των ιδρυμάτων‐φορέων του δικτύου "
 +"ΕΔΕΤ που έχουν ανάγκες για βραχυπρόθεσμη προστασία έναντι δικτυακών "
 +"επιθέσεων με προορισμό τον εξοπλισμό που διαχειρίζονται.\n"
 +"Για τη διασφάλιση της ακεραιότητας της υπηρεσίας και προκειμένου αυτή να μην "
 +"αποτελέσει πηγή επιθέσεων, το authentication των χρηστων πραγματοποιείται με "
 +"τη χρήση Shibboleth. Το authorisation βασίζεται σε ένα συνδυασμό "
 +"συγκεκριμένων attributes του Shibboleth με το address space που κάθε φορέας "
 +"διαχειρίζεται.\n"
 +"Το λογισμικό που επιλέχθηκε για την υλοποίηση της υπηρεσίας βασίζεται "
 +"αποκλειστικά σε ανοιχτό κώδικα.\n"
 +"Αιτήματα ή διευκρινίσεις που αφορούν στη λειτουργία της υπηρεσίας θα πρέπει "
 +"να υποβάλλονται στο helpdesk του ΕΔΕΤ, τηλεφωνικά στο 800‐11‐47638 ή μέσω e‐"
 +"mail στο helpdesk -στο- grnet.gr.\n"
 +
 +#: templates/getinfo.html:43
 +msgid "Joining the service"
 +msgstr "Συμμετοχή"
 +
 +#: templates/getinfo.html:44
 +msgid ""
 +"Joining the service requires the appropriate configuration of certain "
 +"Shibboleth attributes"
 +msgstr ""
 +"Η συμμετοχή στην υπηρεσία προϋποθέτη την ορθή διαμόρφωση συγκεκριμένων "
 +"Shibboleth attributes"
 +
 +#: templates/getinfo.html:49
 +msgid ""
 +"An appropriate HTTP_SHIB_EP_ENTITLEMENT which is provided by GRNET Helpdesk"
 +msgstr ""
 +"Ένα κατάλληλο HTTP_SHIB_EP_ENTITLEMENT το οποίο παρέχεται από το Helpdesk"
 +
 +#: templates/getinfo.html:51
 +msgid "Optionally"
 +msgstr "Προεραιτικά"
 +
 +#: templates/getinfo.html:56
 +msgid "Use"
 +msgstr "Χρήση"
 +
 +#: templates/getinfo.html:58
 +msgid ""
 +"The service enables users to mitigate active attacks aimed at their network "
 +"equipment. \n"
 +"It is based on the creation of dynamic firewall filters that are applied to "
 +"the network using the management protocol NETCONF and are propagated to "
 +"compatible (Juniper) backbone network devices via BGP flowspec NLRI.\n"
 +"In order to properly complete the application for a new filter is essential "
 +"that the destination address belongs to the user's administrative network. "
 +"Currently attacks are limited per /29 subnet.\n"
 +"Requests for new filters are applied directly to the network and therefore "
 +"users should pay extra attention in their request. Filters that have been "
 +"applied to the network are removed after their expiry date, and users can "
 +"activate then again by selecting the corresponding option. \n"
 +"Moreover, users are given the option for early deactivation of their "
 +"requests.\n"
 +msgstr ""
 +"Η υπηρεσία δίνει τη δυνατότητα στους χρήστες να περιορίσουν ενεργές "
 +"επιθέσεις που στοχεύουν στο δικτυακό τους εξοπλισμό. Βασίζεται στη "
 +"δημιουργία δυναμικών φίλτρων firewall οι οποίοι εφαρμόζονται στο δίκτυο με "
 +"τη χρήση του διαχειριστικού πρωτοκόλλου netconf και διαδίδονται στις "
 +"συμβατές (Juniper) διτκυακές συσκευές του δικτύου κορμού της ΕΔΕΤ μέσω του "
 +"BGP flowspec NLRI.\n"
 +"Για την ορθή συμπλήρωση της αίτησης ενός νέου φίλτρου είναι απαραίτητο η "
 +"διεύθυνση προορισμού να ανήκει στο δίκτυο διαχείρισης του φορέα από τον "
 +"οποίο προέρχεται ο χρήστης. Στην παρούσα φάση περιορίζονται επιθέσεις "
 +"ανά /29 υποδίκτυα.\n"
 +"Τα αιτήματα για νέα φίλτρα εφαρμόζονται άμεσα στο δίκτυο και ως εκ τούτου θα "
 +"πρέπει να δίνται ιδιαίτερη προσοχή κατά την αίτησή τους. Τα φίλτρα που έχουν "
 +"εφαρμοσθεί στο δίκτυο αφαιρούνται μετά το πέρας της ημερομηνίας λήξης τους, "
 +"ενώ οι χρήστες μπορούν να τα ενεργοποιήσουν ξανά μέσω της αντίστοιχης "
 +"επιλογής. Παράλληλα, δίνεται η δυνατότητα για απενεργοποίηση αιτημάτων πριν "
 +"τη λήξη τους κατά τη βούληση του χρήστη\n"
 +
 +#: templates/getinfo.html:65
 +msgid "Security"
 +msgstr "Ασφάλεια"
 +
 +#: templates/getinfo.html:66
 +msgid ""
 +"For security reasons, the submission of requests is monitored by the "
 +"administrators of the service.\n"
 +"The service administrators may at any time remove active requests from the "
 +"network, if this is deemed necessary"
 +msgstr ""
 +"Για λόγους ασφαλείας, η υποβολή αιτημάτων καταγράφεται ενημερώνοντας τους "
 +"διαχειριστές της υπηρεσίας.\n"
 +"Οι διαχιριστές της υπηρεσίας μπορούν ανά πάσα στιγμή να αφαιρέσουν ενεργά "
 +"αιτήματα από το δίκτυο, εάν κάτι τέτοιο κριθεί αναγκαίο"
 +
 +#: templates/gettos.html:27 templates/gettos.html.py:28
 +msgid "Terms of Service"
 +msgstr "Όροι χρήσης της υπηρεσίας Firewall on Demand"
 +
 +#: templates/gettos.html:33
 +msgid ""
 +"The FoD service is provided by GRNET to the academic and research community "
 +"and the use of the service should only be done to promote academic, "
 +"educational and research purposes.\n"
 +"The following terms apply to all users of the service. These terms of use, "
 +"as applicable, and each time amended, constitute the contract between the "
 +"service users and GRNET.\n"
 +"To use the service, users are required to accept the following terms."
 +msgstr ""
 +"Η υπηρεσία FoD παρέχεται από την ΕΔΕΤ Α.Ε. προς την ακαδημαϊκή και "
 +"ερευνητική κοινότητα και η χρήση της υπηρεσίας οφείλει να γίνεται μόνο για "
 +"την προώθηση ακαδημαϊκών, εκπαιδευτικών και ερευνητικών σκοπών.\n"
 +"Οι παρακάτω όροι εφαρμόζονται από όλους τους χρήστες της υπηρεσίας. Οι "
 +"παρόντες όροι χρήσης, όπως κάθε φορά ισχύουν και τροποποιούνται, αποτελούν "
 +"τη σύμβαση μεταξύ των χρηστών της υπηρεσίας και της ΕΔΕΤ Α.Ε. Για τη χρήση "
 +"της υπηρεσίας είναι απαραίτητη η αποδοχή των παρακάτω όρων."
 +
 +#: templates/gettos.html:36
 +msgid "Potential Users"
 +msgstr "Δυνητικοί Χρήστες"
 +
 +#: templates/gettos.html:37
 +msgid ""
 +"The service is targeted at the Network Operation Centers (or similar "
 +"structures) approved by the board of GRNET SA, participating in the federal "
 +"identification using Shibboleth. The service is provided to mitigate network "
 +"attacks aimed at network equipment. The entrance and use of the service "
 +"requires proper configuration and release of specific Shibboleth attributes."
 +msgstr ""
 +"Η υπηρεσία απευθύνεται στα Κέντρα Δικτύων (ή σε αντίστοιχες δομές) των "
 +"εγκεκριμένων από το ΔΣ <a href='http://www.noc.grnet.gr/node/35' "
 +"target='_blank'>φορέων</a> της ΕΔΕΤ Α.Ε που συμμετέχουν στην ομοσπονδιακή "
 +"ταυτοποίηση με τη χρήση Shibboleth. Η υπηρεσία παρέχεται προκειμένου να "
 +"περιοριστούν δικτυακές επιθέσεις που στοχεύουν στον εξοπλισμό των φορέων. Η "
 +"είσοδος και χρήση της υπηρεσίας προϋποθέτη την ορθή διαμόρφωση συγκεκριμένων "
 +"ιδιοτήτων του Shibboleth."
 +
- #: templates/profile.html:9
++#: templates/profile.html:10
 +msgid "My data"
 +msgstr "Τα στοιχεία μου"
 +
- #: templates/profile.html:10
++#: templates/profile.html:11
 +msgid "First name"
 +msgstr "Όνομα"
 +
- #: templates/profile.html:11
++#: templates/profile.html:12
 +msgid "Last name"
 +msgstr "Επώνυμο"
 +
- #: templates/profile.html:12 templates/review.html:50
- #: templates/review.html.py:108
++#: templates/profile.html:13
 +msgid "Email"
 +msgstr ""
 +
- #: templates/profile.html:13
++#: templates/profile.html:15
++msgid "My Networks"
++msgstr "Τα Δίκτυά μου"
++
++#: templates/profile.html:18
 +msgid "Organization"
 +msgstr "Φορέας"
 +
- #: templates/profile.html:14
- msgid "Admin Networks"
- msgstr "Δίκτυα Διαχείρισης"
 +#: templates/profile.html:18
++msgid "Networks"
++msgstr "Δίκτυα"
++
++#: templates/profile.html:27
 +msgid ""
 +"Ooops! Seems you have no networks associated with your peer. Contact "
 +"Helpdesk to resolve this issue."
 +msgstr ""
 +
- #: templates/review.html:3 templates/review.html.py:27
- msgid "Review application"
- msgstr ""
- #: templates/review.html:27
- msgid "by"
- msgstr ""
- #: templates/review.html:28
- msgid "Submitted"
- msgstr ""
- #: templates/review.html:33 templates/review.html.py:91
- msgid "Instance information"
- msgstr ""
- #: templates/review.html:47 templates/review.html.py:105
- msgid "Administrative contact"
- msgstr ""
- #: templates/review.html:51 templates/review.html.py:109
- msgid "Phone"
- msgstr ""
- #: templates/review.html:64 templates/review.html.py:122
- msgid "Placement"
- msgstr ""
- #: templates/review.html:67
- msgid "The user has requested explicit network placement on"
- msgstr ""
- #: templates/review.html:71
- msgid ""
- "Choose either a network, or a cluster from the quick list to use the "
- "cluster's default network."
- msgstr ""
- #: templates/review.html:80
- msgid "Decision"
- msgstr ""
- #: templates/review.html:81
- msgid "Comments to the user"
- msgstr ""
- #: templates/review.html:123
- msgid "The instance has been placed on"
- msgstr ""
- #: templates/user_keys.html:86
- msgid ""
- "Upload your SSH public keys and have them automatically installed on all "
- "newly-created instances. Keys must be in OpenSSH format, either RSA, or DSA, "
- "with or without a trailing comment."
- msgstr ""
- #: templates/user_keys.html:90
- msgid "Fingerprint"
- msgstr ""
- #: templates/user_keys.html:90
- msgid "Comment"
- msgstr ""
- #: templates/user_keys.html:92
- msgid "Delete"
- msgstr ""
- #: templates/user_keys.html:96
- msgid "Add new key"
- msgstr ""
- #: templates/user_keys.html:106
- msgid "Add key"
- msgstr ""
- #: templates/user_routes.html:19 templates/user_routes.html.py:311
++#: templates/user_routes.html:19 templates/user_routes.html.py:298
 +msgid "Suspend"
 +msgstr "Κατάργηση"
 +
- #: templates/user_routes.html:97
++#: templates/user_routes.html:126
 +msgid "Display"
 +msgstr "Προβολή"
 +
- #: templates/user_routes.html:97
++#: templates/user_routes.html:126
 +msgid "All"
 +msgstr "όλων των"
 +
- #: templates/user_routes.html:97
++#: templates/user_routes.html:126
 +msgid "rules"
 +msgstr "φίλτρων"
 +
- #: templates/user_routes.html:99
++#: templates/user_routes.html:128
 +msgid "No records to display"
 +msgstr "Δεν βρέθηκαν εγγραφές"
 +
- #: templates/user_routes.html:101
++#: templates/user_routes.html:130
 +msgid "Showing 0 to 0 of 0 entries"
 +msgstr "Δείχνοντας 0 εως 0 από 0 εγγραφές"
 +
- #: templates/user_routes.html:104
++#: templates/user_routes.html:133
 +msgid "Search:"
 +msgstr "Αναζήτηση:"
 +
- #: templates/user_routes.html:107
++#: templates/user_routes.html:136
 +msgid "First"
 +msgstr "Πρώτη"
 +
- #: templates/user_routes.html:108
++#: templates/user_routes.html:137
 +msgid "Previous"
 +msgstr "Προηγούμενη"
 +
- #: templates/user_routes.html:109
++#: templates/user_routes.html:138
 +msgid "Next"
 +msgstr "Επόμενη"
 +
- #: templates/user_routes.html:110
++#: templates/user_routes.html:139
 +msgid "Last"
 +msgstr "Τελευταία"
 +
- #: templates/user_routes.html:237 templates/user_routes.html.py:336
++#: templates/user_routes.html:232 templates/user_routes.html.py:327
 +msgid "Console"
 +msgstr "Κονσόλα"
 +
- #: templates/user_routes.html:237
++#: templates/user_routes.html:232
 +msgid "Add Rule"
 +msgstr "Δημιουργία φίλτρου"
 +
- #: templates/user_routes.html:272
++#: templates/user_routes.html:266
 +msgid "Match"
 +msgstr "Όροι"
 +
- #: templates/user_routes.html:275
++#: templates/user_routes.html:269
 +msgid "Details"
 +msgstr "Λεπτομέρειες"
 +
- #: templates/user_routes.html:276
++#: templates/user_routes.html:270
 +msgid "Applier"
 +msgstr "Χρήστης"
 +
- #: templates/user_routes.html:279
++#: templates/user_routes.html:273
 +msgid "Actions"
 +msgstr "Ενέργειες"
 +
- #: templates/user_routes.html:307
++#: templates/user_routes.html:294
 +msgid "Rule expired"
 +msgstr "Λήξη Φίλτρου"
 +
- #: templates/user_routes.html:307
++#: templates/user_routes.html:294
 +msgid "Suspended by administrator"
 +msgstr "Απενεργοποιήθηκε από το διαχειριστή"
 +
- #: templates/user_routes.html:307
++#: templates/user_routes.html:294
 +msgid "Suspended by user"
 +msgstr "Απενεργοποιήθηκε από το χρήστη"
 +
- #: templates/user_routes.html:310
++#: templates/user_routes.html:297
 +msgid "Edit"
 +msgstr "Επεξεργασία"
 +
- #: templates/user_routes.html:315
++#: templates/user_routes.html:302
 +msgid "Reactivate"
- msgstr ""
++msgstr "Ενεργοποίηση"
 +
- #: templates/user_routes.html:318
++#: templates/user_routes.html:305
 +msgid "ReSync"
 +msgstr ""
 +
- #: templates/user_routes.html:332
++#: templates/user_routes.html:308
++msgid "Fix it!"
++msgstr "Επιδιόρθωση"
++
++#: templates/user_routes.html:323
 +msgid "You are about to suspend rule"
 +msgstr "Πρόκειται να απενεργοποιήσετε το φίλτρο"
 +
- #: templates/user_routes.html:333
++#: templates/user_routes.html:324
 +msgid ""
 +"Suspending the rule will automatically remove the configuration from the "
 +"network and mark this rule as inactive."
 +msgstr ""
 +"Η απενεργοποίηση του φίλτρου θα προκαλέσει την αυτόματη αφαίρεση της "
 +"συγκρότησης από το δίκτυο."
 +
- #: templates/user_routes.html:334
++#: templates/user_routes.html:325
 +msgid "Are you sure you want to proceed?"
 +msgstr "Είστε βέβαιοι ότι επιθυμείτε να συνεχίσετε;"
 +
 +#: templates/welcome.html:3
 +msgid "Login"
 +msgstr "Είσοδος"
 +
 +#: templates/welcome.html:8
 +msgid "Welcome to GRNET's FoD service."
 +msgstr "Καλωσήρθατε στην υπηρεσία FoD του ΕΔΕΤ."
 +
 +#: templates/welcome.html:9
 +msgid ""
 +"If you are new to the service, take some time to read the service description"
 +msgstr ""
 +"Εάν χρησιμοποιείτε την υπηρεσία για πρώτη φορά, αφιερώστε λίγο χρόνο στην "
 +"ανάγνωση της περιγραφής της υπηρεσίας"
 +
 +#: templates/welcome.html:9
 +msgid "here"
 +msgstr "εδώ"
 +
 +#: templates/welcome.html:10
 +msgid ""
 +"If you have properly set your Shibboleth attributes, you can login using the "
 +"link on the right"
 +msgstr ""
 +"Έαν έχετε ορίσει ορθά τις απαιτούμενες παραμέτρους του Shibboleth, μπορείτε "
 +"να εισέλθετε επιλέγοντας το σύνδεσμο στα δεξιά"
 +
 +#: templates/welcome.html:11
 +msgid ""
 +"For troubleshooting info and remarks do not hesitate to contact GRNET's "
 +"Helpdesk."
 +msgstr ""
 +"Για αντιμετώπιση σφαλμάτων και πληροφορίες, επικοινωνήστε με το Helpdesk του "
 +"ΕΔΕΤ"
 +
 +#: templates/registration/activate.html:3
 +#: templates/registration/activation_complete.html:3
 +#: templates/registration/activation_complete.html:7
 +msgid "Activation Complete"
 +msgstr "Ολοκλήρωση ενεργοποίησης"
 +
 +#: templates/registration/activate.html:7
 +msgid "Activation Status"
 +msgstr "Κατάσταση Ενεργοποίησης"
 +
 +#: templates/registration/activate.html:9
 +msgid "succesfully activated"
 +msgstr "ενεργοποιήθηκε επιτυχώς"
 +
 +#: templates/registration/activate.html:11
 +msgid "The user has probably been already activated."
 +msgstr "Ο χρήστης έχει ήδη ενεργοποιηθεί"
 +
 +#: templates/registration/activation_complete.html:8
 +msgid "The user will be notified about his/her account activation"
 +msgstr "Ο χρήστης θα ενημερωθεί για την ενεργοποίηση του λογαριασμού"
++
++#~ msgid ""
++#~ "After clicking Retry Login, it is strongly suggested to close your "
++#~ "browser and visit the page again"
++#~ msgstr ""
++#~ "Αφού επιλέξετε Επανάληψη Εισόδου, προτείνουμε να κλείσετε την εφαρμογή "
++#~ "περιήγησης και να επισκεφθέιτε τη σελίδα ξανά"
++
++#~ msgid "My routes"
++#~ msgstr "Τα φίλτρα μου"
Simple merge
Simple merge
+ {% extends "base.html" %}
  {% load i18n %}
- <html>
- <head>
- <title>{% if error %}{% if inactive %}{% trans "Activation Pending" %}{% else %}{% trans "Error" %}{% endif %}{% endif %}</title>
- <META HTTP-EQUIV="Pragma" CONTENT="no-cache">
- <META HTTP-EQUIV="Expires" CONTENT="-1">
- <script src="/static/js/jquery.min.js" type="text/javascript"></script>
- <link rel="stylesheet" type="text/css" href="/static/css/base.css">
- <link rel="stylesheet" type="text/css" href="/static/css/smoothness/jquery-ui-1.8.13.custom.css">
- <script type="text/javascript" src="/static/js/jquery-ui-1.8.12.custom.min.js"></script>
- <script type="text/javascript" src="/static/js/jquery.tooltip.min.js"></script>
 -{% block title %}{% if error %}{% if inactive %}Activation Pending{% else %}Error{% endif %}{% endif %}{% endblock %}
 +
- <script type="text/javascript">
- $(document).ready(function(){
-       $(".relogin").tooltip({ position: "bottom center", opacity: 0.7});
-       });
- </script>
- <style type="text/css">
++{% block title %}{% if error %}{% if inactive %}{% trans "Activation Pending" %}{% else %}{% trans "Error" %}{% endif %}{% endif %}{% endblock %}
+ {% block extrahead %}
+       <script type="text/javascript">
+       $(document).ready(function(){
+               $(".relogin").tooltip({ position: "bottom center", opacity: 0.7});
+               });
+       </script>
+       <style type="text/css">
  
-     .tooltip {
-         display: none;
-         background: transparent url(/static/black_arrow_updown.png);
-         font-size: 12px;
-         height: 70px;
-         width: 160px;
-         padding: 25px;
-               padding-top: 30px;
-         color: #fff;
-     }
+           .tooltip {
+               display: none;
+               background: transparent url(/static/black_arrow_updown.png);
+               font-size: 12px;
+               height: 70px;
+               width: 160px;
+               padding: 25px;
+                       padding-top: 30px;
+               color: #fff;
+           }
  
 -      </style>
 +</style>
 +<script type="text/javascript">
 +
 +      function setlang(lang){
 +              $("#langsel").val(lang);
 +              $("#langform").submit();
 +      }
 +
 +</script>
- </head>
+ {% endblock %}
  
- <body>
-       <div id="main">
-                       <div id="header">
-                               <a class="grnetlogo" href="{% url group-routes %}">
-                                       <img class="logoimg" src="/static/grnet_logo.png">
-                               </a>
-                               <div id="title">
-                                       <a href="{% url group-routes %}">Firewall on Demand</a>
-                               </div>
-                               <div class="loginform">
-                                       <div id="formcontent">
-                                               {% if user.is_authenticated %}
-                                               <span class="topmenuuser">{% trans "Welcome" %} <strong>{{user}}</strong></span>
-                                               {% endif %}
-                                               <span {% if user.is_authenticated %}class="topmenuaction"{% else %}class="topmenuuser"{% endif %} >
-                                                               <form action="{% url django.views.i18n.set_language %}" method="post" style="display:inline;" id="langform">
-                                                               {% csrf_token %}
-                                                               <input name="next" type="hidden" value="{{ next }}" />
-                                                               <input id="langsel" name="language" type="hidden" value="" />
-                                                               {% for lang in LANGUAGES %}<a class="select_lang" href="#" onclick="setlang('{{ lang.0 }}'); return false;" title="{{lang.1}}">{% ifnotequal LANGUAGE_CODE lang.0 %}<font style="font-weight:normal;">{% endifnotequal %}{% trans lang.1 %}{% ifnotequal LANGUAGE_CODE lang.0 %}</font>{% endifnotequal %}</a>{% if not forloop.last %} -{% endif %}
-                                                               {% endfor %}
-                                                       </form>
-                                               </span>
-                                               {% if user.is_authenticated %}
-                                               <span class="topmenuaction"><a href="{% url user-profile %}">{% trans "My profile" %}</a></span>
- {% if user.is_superuser %}
-                                               <span class="topmenuaction"><a href="{% url admin:index %}">{% trans "Admin" %}</a></span>
- {% endif %}
-                                               <span class="topmenuaction"><a href="{% url logout %}">{% trans "Logout" %}</a></span>
-                                               {% else %}
-                                               <span class="topmenuaction relogin" title='{% trans "After clicking Retry Login, it is strongly suggested to close your browser and visit the page again" %}'><a href="{% url logout %}">{% trans "Retry Login" %}</a></span>
-                                               {% endif %}
-                                       </div>
-                                       
-                               </div>
-                       </div>
-                       <div id="content">
-                               {% block brcrmb_container %}
-                               <div class="info_content_title">{% if user.is_authenticated %}<a href="{% url group-routes %}">{% trans "My routes" %}</a>{% endif %}
-                               {% block breadcrumbs %}{% endblock %}
-                               </div>
-                               
-                               {% endblock %}
-                               {% block content %}
-                               {% if error %}{% if inactive %}<h2>{% trans "Activation Pending" %}</h2>{% else %}<h2>{% trans "Error" %}</h2>{% endif %}{% endif %}
-                               <div>
-                               {% if missing_attributes %}
-                               <p>{% trans "One or more required shibboleth attributes were not released towards this service" %}</p>
-                               {% endif %}
-                               <p {% if not inactive %}style="color: red;"{% endif %}>{% autoescape off %}{{error}}{% endautoescape %}</p>
-                               {% if missing_attributes %}
-                               <p>
-                               {% trans "Required shibboleth attributes" %}:<br>
-                               <ul>
-                               <li>HTTP_EPPN</li>
-                               <li>HTTP_SHIB_HOMEORGANIZATION</li>
-                               <li>HTTP_SHIB_INETORGPERSON_MAIL</li>
-                               <li>An appropriate HTTP_SHIB_EP_ENTITLEMENT</li>
-                               </ul>
-                               {% trans "Optional" %}:
-                               <ul>
-                               <li>HTTP_SHIB_INETORGPERSON_GIVENNAME</li>
-                               <li>HTTP_SHIB_PERSON_SURNAME</li>
-                               </ul>
-                               </p>
-                               {% endif %}
-                               </div>
 +
-                               {% endblock %}
+ {% block menublock %}
+       {% if user.is_authenticated %}
+               <span class="topmenuuser">{% trans "Welcome" %} <strong>{{user}}</strong></span>
+       {% endif %}
+       {% if user.is_authenticated %}
+       <span class="topmenuaction"><a href="{% url user-profile %}">{% trans "My profile" %}</a></span>
+       {% if user.is_superuser %}
+               <span class="topmenuaction"><a href="{% url admin:index %}">{% trans "Admin" %}</a></span>
+       {% endif %}
+       <span class="topmenuaction"><a href="{% url logout %}">{% trans "Logout" %}</a></span>
+       {% else %}
+       <span class="topmenuaction relogin" title="After clicking Retry Login, it is strongly suggested to close your browser and visit the page again"><a href="{% url logout %}">{% trans "Retry Login" %}</a></span>
+       {% endif %}
+ {% endblock %}
  
-                       </div>
-                       <div id="footer">
-                       {% if user.is_authenticated %}
-                       {% trans "If you have any questions or need help, contact GRNET Helpdesk at <a href='mailto:helpdesk@grnet.gr'>helpdesk@grnet.gr</a> or 800-11-47638." %}<br />
-                       {% endif %}
-                       <a href="http://www.grnet.gr">{% trans "GRNET" %} NOC</a> | <a href="/about/info/">{% trans "Info" %}</a> | <a href="/about/terms-of-service">{% trans "Service Terms" %}</a>
-                       </div>
+ {% block content %}
 -      {% if error %}{% if inactive %}<h2>Activation Pending</h2>{% else %}<h2>Error</h2>{% endif %}{% endif %}
++      {% if error %}{% if inactive %}<h2>{% trans "Activation Pending" %}</h2>{% else %}<h2>{% trans "Error" %}</h2>{% endif %}{% endif %}
+       <div>
+       {% if missing_attributes %}
 -      <p>One or more required shibboleth attributes were not released towards this service</p>
++      <p>{% trans "One or more required shibboleth attributes were not released towards this service" %}</p>
+       {% endif %}
+       <p {% if not inactive %}style="color: red;"{% endif %}>{% autoescape off %}{{error}}{% endautoescape %}</p>
+       {% if missing_attributes %}
+       <p>
 -      Required shibboleth attributes:<br>
++      {% trans "Required shibboleth attributes" %}:<br>
+       <ul>
+       <li>HTTP_EPPN</li>
+       <li>HTTP_SHIB_HOMEORGANIZATION</li>
+       <li>HTTP_SHIB_INETORGPERSON_MAIL</li>
+       <li>An appropriate HTTP_SHIB_EP_ENTITLEMENT</li>
+       </ul>
 -      Optional Attributes:
++      {% trans "Optional" %}:
+       <ul>
+       <li>HTTP_SHIB_INETORGPERSON_GIVENNAME</li>
+       <li>HTTP_SHIB_PERSON_SURNAME</li>
+       </ul>
+       </p>
+       {% endif %}
        </div>
- </body>
- </html>
+ {% endblock %}
index 0000000,d908364..a8fc3c9
mode 000000,100644..100644
--- /dev/null
@@@ -1,0 -1,8 +1,8 @@@
+ {% load i18n %}
+ <div id="footer">
+       {% if user.is_authenticated %}
+       {% trans "If you have any questions or need help, contact GRNET Helpdesk at <a href='mailto:helpdesk@grnet.gr'>helpdesk@grnet.gr</a> or 800-11-47638." %}<br />
+       {% endif %}
 -      <a href="http://www.grnet.gr">{% trans "GRNET" %} NOC</a> | <a href="/fod/about/info/">{% trans "Info" %}</a> | <a href="/fod/about/terms-of-service/">{% trans "Service Terms" %}</a>
++      <a href="http://www.grnet.gr">{% trans "GRNET" %} NOC</a> | <a href="{% url getinfo %}">{% trans "Info" %}</a> | <a href="{% url gettos %}">{% trans "Service Terms" %}</a>
+       <p style="text-align: center;"><img width="46" height="40" border="0" class="image image-img_assist_custom-46x40 " src="http://noc.grnet.gr/sites/default/files/images/image_PSSYGK.img_assist_custom-46x40.png" alt="Flag ΨΣ" title="Flag ΨΣ"> <img width="49" height="40" border="0" class="image image-img_assist_custom-49x40 " src="http://noc.grnet.gr/sites/default/files/images/image_EEflag.img_assist_custom-49x40.png" alt="EU flag" title="EU flag"> <img width="90" height="40" border="0" class="image image-img_assist_custom-90x40 " src="http://noc.grnet.gr/sites/default/files/images/image_YPDBMTH.img_assist_custom-90x40.png" alt="Flag ΥΠΔΒΜΘ" title="Flag ΥΠΔΒΜΘ"><img width="67" height="40" border="0" class="image image-img_assist_custom-67x40 " src="http://noc.grnet.gr/sites/default/files/images/image_ESPA.img_assist_custom-67x40.png" alt="ESPA" title="ESPA"></p>
+ </div>
@@@ -6,20 -7,29 +7,29 @@@
  <h3>{% trans "My profile" %}</h3>
  
  <div id="profile">
 -      <strong>First name:</strong> {{user.first_name}} <br>
 -      <strong>Last name:</strong> {{user.last_name}} <br>
 -      <strong>Email:</strong> {{user.email}}<br>
 +      {% trans "My data" %}:<br>
 +      <strong>{% trans "First name" %}:</strong> {{user.first_name}} <br>
 +      <strong>{% trans "Last name" %}:</strong> {{user.last_name}} <br>
 +      <strong>{% trans "Email" %}:</strong> {{user.email}}<br>
-       <strong>{% trans "Organization" %}:</strong> {{peer}} <br>
-       <strong>{% trans "Admin Networks" %}:</strong> <br>
-       {% for network in peer.networks.all %}
-       {{network}}<br>
-       {% empty %}
-     <span style="color:red">{% blocktrans %}Ooops! Seems you have no networks associated with your peer. Contact Helpdesk to resolve this issue.{% endblocktrans %}</span>
+       <br>
 -      <strong>My Networks:</strong><br>
++      <strong>{% trans "My Networks" %}:</strong><br>
+       <table class="display">
+       <tr>
 -      <th class="ui-state-default">Organization</th><th class="ui-state-default">Networks</th>
++      <th class="ui-state-default">{% trans "Organization" %}</th><th class="ui-state-default">{% trans "Networks" %}</th>
+       </tr>
+       {% for peer in peers %}
+               <tr class="gradeC {% if forloop.counter|divisibleby:2 %}even{% else %}odd{% endif %}">
+               <td>{{peer}} </td>
+               <td>
+               {% for network in peer.networks.all %}
+               {{network}}<br>
+               {% empty %}
 -          <span style="color:red">Ooops! Seems you have no networks associated with this peer. Contact Helpdesk to resolve this issue.</span>
++          <span style="color:red">{% blocktrans %}Ooops! Seems you have no networks associated with your peer. Contact Helpdesk to resolve this issue.{% endblocktrans %}</span>
+               {% endfor %}
+               </td></tr>
        {% endfor %}
+       </table>
  </div>
  
--
--
  {% endblock %}
++
@@@ -29,11 -29,9 +29,9 @@@ $(document).ready(function()
                      }
                  });
              },
 -            Cancel: function(){
 +            '{% trans "Cancel" %}': function(){
                  $('#dialog').dialog('close');
              },
-         
-         
          },
          close: function(){
              update_val = $("#hid_mid").val();
              "bSortable": false
          }],
          "aaSorting": [[0, 'desc']],
 -        "oLanguage": {
 -            "sLengthMenu": '{% trans "Display" %} <select><option value="25">25</option><option value="50">50</option><option value="-1">{% trans "All" %}</option></select> rules'
 -        },
          "iDisplayLength": 25,
 +        "oLanguage": {
 +              "sLengthMenu": '{% trans "Display" %} <select><option value="25">25</option><option value="50">50</option><option value="-1">{% trans "All" %}</option></select> {% trans "rules" %}',
 +            "sProcessing":   "Processing...",
 +            "sZeroRecords": '{% trans "No records to display" %}',
 +            "sInfo":         "Showing _START_ to _END_ of _TOTAL_ entries",
 +            "sInfoEmpty":    "{% trans "Showing 0 to 0 of 0 entries" %}",
 +            "sInfoFiltered": "(filtered from _MAX_ total entries)",
 +            "sInfoPostFix":  "",
 +            "sSearch":       '{% trans "Search:" %}',
 +            "sUrl":          "",
 +            "oPaginate": {
 +                "sFirst":    '{% trans "First" %}',
 +                "sPrevious": '{% trans "Previous" %}',
 +                "sNext":     '{% trans "Next" %}',
 +                "sLast":     '{% trans "Last" %}'
 +            }
 +        }
      });
-     
      oTable.fnDraw();
-     
      $('input[name="status_filter"]').click(function(){
-     
          //slice off the last '|' or it doesn't work
          //also be sure to use the third parameter
      });
@@@ -304,21 -277,25 +291,25 @@@ function delete_route(route)
                style="border-bottom:2px dashed red;" 
          title="Expires {% ifequal route.days_to_expire '0' %}today{% else%}in {{route.days_to_expire}} day{{ route.days_to_expire|pluralize }}{% endifequal %}"
                {% endif %}{% endif %}>{{ route.expires }}</span></td>
-       <td style="text-align: center;">{% if route.status == 'EXPIRED' %}{% trans "Rule expired" %}{% else %}{% if route.status == 'ADMININACTIVE' %}{% trans "Suspended by administrator" %}{% else %}{% if route.status == 'INACTIVE' %}{% trans "Suspended by user" %}{% else %}{{ route.response }}{% endif %}{% endif %}{% endif %}</td>
 -      <td style="text-align: center;">{% if route.status == 'EXPIRED' %}Rule expired{% else %}{% if route.status == 'ADMININACTIVE' %}Suspended by administrator{% else %}{% if route.status == 'INACTIVE' %}Suspended by user{% else %}{{ route.response }}{% if route.status == 'PENDING' %}<img src="/static/dots.gif">{% endif %}{% endif %}{% endif %}{% endif %}</td>
++      <td style="text-align: center;">{% if route.status == 'EXPIRED' %}{% trans "Rule expired" %}{% else %}{% if route.status == 'ADMININACTIVE' %}{% trans "Suspended by administrator" %}{% else %}{% if route.status == 'INACTIVE' %}{% trans "Suspended by user" %}{% else %}{{ route.response }}{% if route.status == 'PENDING' %}<img src="/static/dots.gif">{% endif %}{% endif %}{% endif %}{% endif %}</td>
        <td style="text-align: center; width:180px;">
                {% ifequal route.status 'ACTIVE' %}
 -              <a href="{% url edit-route route.name %}" class="edit_button" id="edit_button_{{route.pk}}">Edit</a> 
 -              <button class="del_button" id="{{route.name}}" onclick="javascript:delete_route(this.id)">Suspend</button>
 +              <a href="{% url edit-route route.name %}" class="edit_button" id="edit_button_{{route.pk}}">{% trans "Edit" %}</a> 
 +              <button class="del_button" id="{{route.name}}" onclick="javascript:delete_route(this.id)">{% trans "Suspend" %}</button>
                <a href="{% url delete-route route.name %}" style="display:none" id="del_route_{{route.name}}"></a>
                {% else %}
                {% if route.status == 'EXPIRED' or route.status == 'ADMININACTIVE' or route.status == 'INACTIVE' %}
 -              <a href="{% url edit-route route.name %}" class="edit_button" id="edit_button_{{route.pk}}">Reactivate</a>
 +              <a href="{% url edit-route route.name %}" class="edit_button" id="edit_button_{{route.pk}}">{% trans "Reactivate" %}</a>
                {% else %}
                {% ifequal route.status 'OUTOFSYNC' %}
 -              <a href="{% url edit-route route.name %}" class="edit_button" id="edit_button_{{route.pk}}">ReSync</a>
 +              <a href="{% url edit-route route.name %}" class="edit_button" id="edit_button_{{route.pk}}">{% trans "ReSync" %}</a>
                {% else %}
+               {% ifequal route.status 'ERROR' %}
 -              <a href="{% url edit-route route.name %}" class="edit_button" id="edit_button_{{route.pk}}">Fix it!</a>
++              <a href="{% url edit-route route.name %}" class="edit_button" id="edit_button_{{route.pk}}">{% trans "Fix it!" %}</a>
+               {% else %}
                -
                {% endifequal %}
+               {% endifequal %}
                {% endif %}
                {% endifequal %}
                </td>
diff --cc urls.py.dist
@@@ -19,6 -19,6 +19,8 @@@ urlpatterns = patterns(''
      url(r'^fod/delete/(?P<route_slug>[\w\-]+)/$', 'flowspy.flowspec.views.delete_route', name="delete-route"),
      url(r'^fod/login/?', 'flowspy.flowspec.views.user_login', name="login"),
      url(r'^fod/welcome/?', 'flowspy.flowspec.views.welcome', name="welcome"),
++    url(r'^fod/info/?', 'flowspy.flowspec.views.getinfo', name="getinfo"),
++    url(r'^fod/tos/?', 'flowspy.flowspec.views.gettos', name="gettos"),
      url(r'^fod/logout/?', 'flowspy.flowspec.views.user_logout', name="logout"),
      (r'^fod/setlang/?$', 'django.views.i18n.set_language'),
      # Uncomment the admin/doc line below to enable admin documentation: