From e3fa784a54a867b3eba543ae9ca0b11c5f50a7c9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Cl=C3=A9ment?= Date: Wed, 31 Oct 2018 10:38:41 +0100 Subject: [PATCH] ui: style member, job, group --- .babelrc | 2 +- server.js | 4 +- src/config.sample.pug | 3 +- src/error.log | 368 ++++++++++++++++++++++++++++++++++ src/index.pug | 2 + src/menu.pug | 1 + src/page-group-create.pug | 1 + src/page-group-edit.pug | 1 + src/page-group-profile.pug | 50 ++++- src/page-group.pug | 5 +- src/page-job-offer-create.pug | 9 + src/page-job-offers.pug | 12 +- src/page-member-profile.pug | 10 +- src/page-member.pug | 2 +- src/page-members.pug | 25 ++- src/page-project-chat.pug | 2 +- src/page-project-create.pug | 17 +- src/page-project-edit.pug | 25 ++- src/page-project-profile.pug | 18 +- src/page-project.pug | 12 +- src/scripts/hd-widgets.js | 50 +++++ src/styles/content.scss | 178 +++++++++++++--- src/styles/form.scss | 18 +- src/styles/icons.scss | 4 +- src/styles/main.scss | 18 +- src/styles/members.scss | 220 -------------------- www/lib/sib-core | 2 +- www/test.html | 5 +- 28 files changed, 739 insertions(+), 325 deletions(-) create mode 100644 src/error.log create mode 100644 src/page-job-offer-create.pug delete mode 100644 src/styles/members.scss diff --git a/.babelrc b/.babelrc index 9ae1f15..f085829 100644 --- a/.babelrc +++ b/.babelrc @@ -4,7 +4,7 @@ "@babel/preset-env", { "targets": { - "browsers": [">2.75%"] + "browsers": ["last 1 years"] } } ] diff --git a/server.js b/server.js index eafd12a..f2a118c 100644 --- a/server.js +++ b/server.js @@ -1,4 +1,5 @@ const port = 9000; +const browsersyncPort = 3000; const distPath = 'www'; // express server const { join } = require('path'); @@ -18,5 +19,6 @@ bs.init({ proxy: `http://localhost:${port}`, open: false, notify: false, - //tunnel: true, + port: browsersyncPort, + tunnel: true, }); diff --git a/src/config.sample.pug b/src/config.sample.pug index dd28afe..8cc01c1 100644 --- a/src/config.sample.pug +++ b/src/config.sample.pug @@ -1,2 +1,3 @@ - var sdn = process.env.SDN || 'http://127.0.0.1:8000' -- var cdn = process.env.CDN || 'https://cdn.happy-dev.fr' \ No newline at end of file +- var cdn = process.env.CDN || 'https://cdn.happy-dev.fr' +- var xmpp = 'https://jabber.happy-dev.fr/http-bind/' \ No newline at end of file diff --git a/src/error.log b/src/error.log new file mode 100644 index 0000000..e6e25d4 --- /dev/null +++ b/src/error.log @@ -0,0 +1,368 @@ +ImproperlyConfigured at /members/ +Could not resolve URL for hyperlinked relationship using view name "member-detail". You may have failed to include the related model in your API, or incorrectly configured the `lookup_field` attribute on this field. + +Request Method: GET +Request URL: http://127.0.0.1:8000/members/ +Django Version: 1.11 +Python Executable: /home/ubuntu/dev/test/ldpserverhdparis/env/bin/python +Python Version: 3.6.6 +Python Path: ['/home/ubuntu/dev/test/ldpserverhdparis', '/home/ubuntu/dev/test/ldpserverhdparis/env/lib/python36.zip', '/home/ubuntu/dev/test/ldpserverhdparis/env/lib/python3.6', '/home/ubuntu/dev/test/ldpserverhdparis/env/lib/python3.6/lib-dynload', '/usr/lib/python3.6', '/home/ubuntu/dev/test/ldpserverhdparis/env/lib/python3.6/site-packages'] +Server time: Tue, 30 Oct 2018 16:22:14 +0000 +Installed Applications: +['ldpserverhdparis', + 'djangoldp', + 'django.contrib.admin', + 'django.contrib.auth', + 'django.contrib.contenttypes', + 'django.contrib.sessions', + 'django.contrib.messages', + 'django.contrib.staticfiles', + 'oidc_provider', + 'guardian'] +Installed Middleware: +['django.middleware.security.SecurityMiddleware', + 'django.contrib.sessions.middleware.SessionMiddleware', + 'django.middleware.common.CommonMiddleware', + 'django.middleware.csrf.CsrfViewMiddleware', + 'django.contrib.auth.middleware.AuthenticationMiddleware', + 'django.contrib.messages.middleware.MessageMiddleware', + 'django.middleware.clickjacking.XFrameOptionsMiddleware'] + + +Traceback: + +File "/home/ubuntu/dev/test/ldpserverhdparis/env/lib/python3.6/site-packages/rest_framework/relations.py" in to_representation + 400. url = self.get_url(value, self.view_name, request, format) + +File "/home/ubuntu/dev/test/ldpserverhdparis/env/lib/python3.6/site-packages/rest_framework/relations.py" in get_url + 338. return self.reverse(view_name, kwargs=kwargs, request=request, format=format) + +File "/home/ubuntu/dev/test/ldpserverhdparis/env/lib/python3.6/site-packages/rest_framework/reverse.py" in reverse + 50. url = _reverse(viewname, args, kwargs, request, format, **extra) + +File "/home/ubuntu/dev/test/ldpserverhdparis/env/lib/python3.6/site-packages/rest_framework/reverse.py" in _reverse + 63. url = django_reverse(viewname, args=args, kwargs=kwargs, **extra) + +File "/home/ubuntu/dev/test/ldpserverhdparis/env/lib/python3.6/site-packages/django/urls/base.py" in reverse + 91. return force_text(iri_to_uri(resolver._reverse_with_prefix(view, prefix, *args, **kwargs))) + +File "/home/ubuntu/dev/test/ldpserverhdparis/env/lib/python3.6/site-packages/django/urls/resolvers.py" in _reverse_with_prefix + 497. raise NoReverseMatch(msg) + + + During handling of the above exception (Reverse for 'member-detail' with keyword arguments '{'pseudo': 'alex.bourlier'}' not found. 1 pattern(s) tried: ['members/(?P[\\w-]+)/$']), another exception occurred: + + + +File "/home/ubuntu/dev/test/ldpserverhdparis/env/lib/python3.6/site-packages/django/core/handlers/exception.py" in inner + 41. response = get_response(request) + +File "/home/ubuntu/dev/test/ldpserverhdparis/env/lib/python3.6/site-packages/django/core/handlers/base.py" in _get_response + 187. response = self.process_exception_by_middleware(e, request) + +File "/home/ubuntu/dev/test/ldpserverhdparis/env/lib/python3.6/site-packages/django/core/handlers/base.py" in _get_response + 185. response = wrapped_callback(request, *callback_args, **callback_kwargs) + +File "/home/ubuntu/dev/test/ldpserverhdparis/env/lib/python3.6/site-packages/django/views/decorators/csrf.py" in wrapped_view + 58. return view_func(*args, **kwargs) + +File "/home/ubuntu/dev/test/ldpserverhdparis/env/lib/python3.6/site-packages/rest_framework/viewsets.py" in view + 116. return self.dispatch(request, *args, **kwargs) + +File "/home/ubuntu/dev/test/ldpserverhdparis/env/lib/python3.6/site-packages/djangoldp/views.py" in dispatch + 126. response = super(LDPViewSet, self).dispatch(request, *args, **kwargs) + +File "/home/ubuntu/dev/test/ldpserverhdparis/env/lib/python3.6/site-packages/rest_framework/views.py" in dispatch + 495. response = self.handle_exception(exc) + +File "/home/ubuntu/dev/test/ldpserverhdparis/env/lib/python3.6/site-packages/rest_framework/views.py" in handle_exception + 455. self.raise_uncaught_exception(exc) + +File "/home/ubuntu/dev/test/ldpserverhdparis/env/lib/python3.6/site-packages/rest_framework/views.py" in dispatch + 492. response = handler(request, *args, **kwargs) + +File "/home/ubuntu/dev/test/ldpserverhdparis/env/lib/python3.6/site-packages/rest_framework/mixins.py" in list + 48. return Response(serializer.data) + +File "/home/ubuntu/dev/test/ldpserverhdparis/env/lib/python3.6/site-packages/djangoldp/serializers.py" in data + 16. return ReturnDict(super(ListSerializer, self).data, serializer=self) + +File "/home/ubuntu/dev/test/ldpserverhdparis/env/lib/python3.6/site-packages/rest_framework/serializers.py" in data + 262. self._data = self.to_representation(self.instance) + +File "/home/ubuntu/dev/test/ldpserverhdparis/env/lib/python3.6/site-packages/djangoldp/serializers.py" in to_representation + 13. return {'@id': '', 'ldp:contains':super(ContainerSerializer, self).to_representation(data)} + +File "/home/ubuntu/dev/test/ldpserverhdparis/env/lib/python3.6/site-packages/rest_framework/serializers.py" in to_representation + 683. self.child.to_representation(item) for item in iterable + +File "/home/ubuntu/dev/test/ldpserverhdparis/env/lib/python3.6/site-packages/rest_framework/serializers.py" in + 683. self.child.to_representation(item) for item in iterable + +File "/home/ubuntu/dev/test/ldpserverhdparis/env/lib/python3.6/site-packages/djangoldp/serializers.py" in to_representation + 77. data = super().to_representation(obj) + +File "/home/ubuntu/dev/test/ldpserverhdparis/env/lib/python3.6/site-packages/rest_framework/serializers.py" in to_representation + 527. ret[field.field_name] = field.to_representation(attribute) + +File "/home/ubuntu/dev/test/ldpserverhdparis/env/lib/python3.6/site-packages/rest_framework/relations.py" in to_representation + 415. raise ImproperlyConfigured(msg % self.view_name) + +Exception Type: ImproperlyConfigured at /members/ +Exception Value: Could not resolve URL for hyperlinked relationship using view name "member-detail". You may have failed to include the related model in your API, or incorrectly configured the `lookup_field` attribute on this field. +Request information: +USER: clement + +GET: No GET data + +POST: No POST data + +FILES: No FILES data + +COOKIES: +csrftoken = 'rJoY6gBfXiXUzx2vt44C3jpidX61XuS8d33rk6bsGTOwM4qdsTo3YOU21aXLPMbG' +sessionid = 'a7j0mj6zjnv7i2mko5bs17mynvy12rcc' +io = 'F3hWNi2N9qwA7YiDAABT' + +META: +CHROME_DESKTOP = 'code-url-handler.desktop' +CONTENT_LENGTH = '' +CONTENT_TYPE = 'text/plain' +CSRF_COOKIE = 'rJoY6gBfXiXUzx2vt44C3jpidX61XuS8d33rk6bsGTOwM4qdsTo3YOU21aXLPMbG' +DBUS_SESSION_BUS_ADDRESS = 'unix:path=/run/user/1000/bus' +DEFAULTS_PATH = '/usr/share/gconf/plasma.default.path' +DESKTOP_SESSION = 'plasma' +DESKTOP_STARTUP_ID = 'ubuntu-N7x0WU;1540892856;943495;1492_TIME14942764' +DISPLAY = ':0' +DJANGO_SETTINGS_MODULE = 'ldpserverhdparis.settings' +GATEWAY_INTERFACE = 'CGI/1.1' +GPG_AGENT_INFO = '/run/user/1000/gnupg/S.gpg-agent:0:1' +GS_LIB = '/home/ubuntu/.fonts' +GTK_MODULES = 'gail:atk-bridge' +HOME = '/home/ubuntu' +HTTP_ACCEPT = 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8' +HTTP_ACCEPT_ENCODING = 'gzip, deflate' +HTTP_ACCEPT_LANGUAGE = 'en-US,en;q=0.8,fr;q=0.5,fr-FR;q=0.3' +HTTP_CONNECTION = 'keep-alive' +HTTP_COOKIE = 'csrftoken=rJoY6gBfXiXUzx2vt44C3jpidX61XuS8d33rk6bsGTOwM4qdsTo3YOU21aXLPMbG; sessionid=a7j0mj6zjnv7i2mko5bs17mynvy12rcc; io=F3hWNi2N9qwA7YiDAABT' +HTTP_DNT = '1' +HTTP_HOST = '127.0.0.1:8000' +HTTP_UPGRADE_INSECURE_REQUESTS = '1' +HTTP_USER_AGENT = 'Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:63.0) Gecko/20100101 Firefox/63.0' +KDE_FULL_SESSION = 'true' +KDE_SESSION_UID = '1000' +KDE_SESSION_VERSION = '5' +LANG = 'en_US.UTF-8' +LANGUAGE = 'fr' +LOGNAME = 'ubuntu' +MAKEFLAGS = '' +MAKELEVEL = '1' +MAKE_TERMERR = '/dev/pts/4' +MAKE_TERMOUT = '/dev/pts/4' +MANDATORY_PATH = '/usr/share/gconf/plasma.mandatory.path' +MFLAGS = '' +PATH = '/home/ubuntu/dev/test/ldpserverhdparis/env/bin:.deno/bin/:/home/ubuntu/.deno/bin/:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games' +PATH_INFO = '/members/' +PWD = '/home/ubuntu/dev/test/ldpserverhdparis' +QT_ACCESSIBILITY = '1' +QT_AUTO_SCREEN_SCALE_FACTOR = '0' +QUERY_STRING = '' +REMOTE_ADDR = '127.0.0.1' +REMOTE_HOST = '' +REQUEST_METHOD = 'GET' +RUN_MAIN = 'true' +SCRIPT_NAME = '' +SERVER_NAME = 'localhost' +SERVER_PORT = '8000' +SERVER_PROTOCOL = 'HTTP/1.1' +SERVER_SOFTWARE = 'WSGIServer/0.2' +SESSION_MANAGER = 'local/ubuntu-N7x0WU:@/tmp/.ICE-unix/1459,unix/ubuntu-N7x0WU:/tmp/.ICE-unix/1459' +SHELL = '/usr/bin/fish' +SHLVL = '3' +SSH_AGENT_PID = '1383' +SSH_AUTH_SOCK = '/tmp/ssh-RgoHoRBUgMlY/agent.1318' +TERM = 'xterm-256color' +TERM_PROGRAM = 'vscode' +TERM_PROGRAM_VERSION = '1.28.2' +TZ = 'UTC' +USER = 'ubuntu' +VIRTUAL_ENV = '/home/ubuntu/dev/test/ldpserverhdparis/env' +XAUTHORITY = '/home/ubuntu/.Xauthority' +XCURSOR_SIZE = '0' +XCURSOR_THEME = 'ComixCursors-Opaque-Black' +XDG_CONFIG_DIRS = '/etc/xdg/xdg-plasma:/etc/xdg:/usr/share/kubuntu-default-settings/kf5-settings' +XDG_CURRENT_DESKTOP = 'KDE' +XDG_DATA_DIRS = '/usr/share/plasma:/home/ubuntu/.local/share/flatpak/exports/share:/var/lib/flatpak/exports/share:/usr/local/share:/usr/share' +XDG_RUNTIME_DIR = '/run/user/1000' +XDG_SEAT = 'seat0' +XDG_SEAT_PATH = '/org/freedesktop/DisplayManager/Seat0' +XDG_SESSION_CLASS = 'user' +XDG_SESSION_DESKTOP = 'KDE' +XDG_SESSION_ID = '1' +XDG_SESSION_PATH = '/org/freedesktop/DisplayManager/Session0' +XDG_SESSION_TYPE = 'x11' +XDG_VTNR = '1' +_OLD_FISH_PROMPT_OVERRIDE = '/home/ubuntu/dev/test/ldpserverhdparis/env' +_OLD_VIRTUAL_PATH = '.deno/bin/\x1e/home/ubuntu/.deno/bin/\x1e/usr/local/sbin\x1e/usr/local/bin\x1e/usr/sbin\x1e/usr/bin\x1e/sbin\x1e/bin\x1e/usr/games\x1e/usr/local/games' +wsgi.errors = <_io.TextIOWrapper name='' mode='w' encoding='UTF-8'> +wsgi.file_wrapper = '' +wsgi.input = <_io.BufferedReader name=5> +wsgi.multiprocess = False +wsgi.multithread = True +wsgi.run_once = False +wsgi.url_scheme = 'http' +wsgi.version = + +Settings: +Using settings module ldpserverhdparis.settings +ABSOLUTE_URL_OVERRIDES = {} +ADMINS = [] +ALLOWED_HOSTS = ['127.0.0.1', 'test-paris.happy-dev.fr'] +APPEND_SLASH = True +AUTHENTICATION_BACKENDS = ['django.contrib.auth.backends.ModelBackend', 'guardian.backends.ObjectPermissionBackend'] +AUTH_PASSWORD_VALIDATORS = '********************' +AUTH_USER_MODEL = 'auth.User' +BASE_DIR = '/home/ubuntu/dev/test/ldpserverhdparis' +CACHES = {'default': {'BACKEND': 'django.core.cache.backends.locmem.LocMemCache'}} +CACHE_MIDDLEWARE_ALIAS = 'default' +CACHE_MIDDLEWARE_KEY_PREFIX = '********************' +CACHE_MIDDLEWARE_SECONDS = 600 +CSRF_COOKIE_AGE = 31449600 +CSRF_COOKIE_DOMAIN = None +CSRF_COOKIE_HTTPONLY = False +CSRF_COOKIE_NAME = 'csrftoken' +CSRF_COOKIE_PATH = '/' +CSRF_COOKIE_SECURE = False +CSRF_FAILURE_VIEW = 'django.views.csrf.csrf_failure' +CSRF_HEADER_NAME = 'HTTP_X_CSRFTOKEN' +CSRF_TRUSTED_ORIGINS = [] +CSRF_USE_SESSIONS = False +DATABASES = {'default': {'ENGINE': 'django.db.backends.sqlite3', 'NAME': '/home/ubuntu/dev/test/ldpserverhdparis/db.sqlite3', 'ATOMIC_REQUESTS': False, 'AUTOCOMMIT': True, 'CONN_MAX_AGE': 0, 'OPTIONS': {}, 'TIME_ZONE': None, 'USER': '', 'PASSWORD': '********************', 'HOST': '', 'PORT': '', 'TEST': {'CHARSET': None, 'COLLATION': None, 'NAME': None, 'MIRROR': None}}} +DATABASE_ROUTERS = [] +DATA_UPLOAD_MAX_MEMORY_SIZE = 2621440 +DATA_UPLOAD_MAX_NUMBER_FIELDS = 1000 +DATETIME_FORMAT = 'N j, Y, P' +DATETIME_INPUT_FORMATS = ['%Y-%m-%d %H:%M:%S', '%Y-%m-%d %H:%M:%S.%f', '%Y-%m-%d %H:%M', '%Y-%m-%d', '%m/%d/%Y %H:%M:%S', '%m/%d/%Y %H:%M:%S.%f', '%m/%d/%Y %H:%M', '%m/%d/%Y', '%m/%d/%y %H:%M:%S', '%m/%d/%y %H:%M:%S.%f', '%m/%d/%y %H:%M', '%m/%d/%y'] +DATE_FORMAT = 'N j, Y' +DATE_INPUT_FORMATS = ['%Y-%m-%d', '%m/%d/%Y', '%m/%d/%y', '%b %d %Y', '%b %d, %Y', '%d %b %Y', '%d %b, %Y', '%B %d %Y', '%B %d, %Y', '%d %B %Y', '%d %B, %Y'] +DEBUG = True +DEBUG_PROPAGATE_EXCEPTIONS = False +DECIMAL_SEPARATOR = '.' +DEFAULT_CHARSET = 'utf-8' +DEFAULT_CONTENT_TYPE = 'text/html' +DEFAULT_EXCEPTION_REPORTER_FILTER = 'django.views.debug.SafeExceptionReporterFilter' +DEFAULT_FILE_STORAGE = 'django.core.files.storage.FileSystemStorage' +DEFAULT_FROM_EMAIL = 'webmaster@localhost' +DEFAULT_INDEX_TABLESPACE = '' +DEFAULT_TABLESPACE = '' +DISALLOWED_USER_AGENTS = [] +EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend' +EMAIL_HOST = 'localhost' +EMAIL_HOST_PASSWORD = '********************' +EMAIL_HOST_USER = '' +EMAIL_PORT = 25 +EMAIL_SSL_CERTFILE = None +EMAIL_SSL_KEYFILE = '********************' +EMAIL_SUBJECT_PREFIX = '[Django] ' +EMAIL_TIMEOUT = None +EMAIL_USE_LOCALTIME = False +EMAIL_USE_SSL = False +EMAIL_USE_TLS = False +FILE_CHARSET = 'utf-8' +FILE_UPLOAD_DIRECTORY_PERMISSIONS = None +FILE_UPLOAD_HANDLERS = ['django.core.files.uploadhandler.MemoryFileUploadHandler', 'django.core.files.uploadhandler.TemporaryFileUploadHandler'] +FILE_UPLOAD_MAX_MEMORY_SIZE = 2621440 +FILE_UPLOAD_PERMISSIONS = None +FILE_UPLOAD_TEMP_DIR = None +FIRST_DAY_OF_WEEK = 0 +FIXTURE_DIRS = [] +FORCE_SCRIPT_NAME = None +FORMAT_MODULE_PATH = None +FORM_RENDERER = 'django.forms.renderers.DjangoTemplates' +IGNORABLE_404_URLS = [] +INSTALLED_APPS = ['ldpserverhdparis', 'djangoldp', 'django.contrib.admin', 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.messages', 'django.contrib.staticfiles', 'oidc_provider', 'guardian'] +INTERNAL_IPS = [] +LANGUAGES = [('af', 'Afrikaans'), ('ar', 'Arabic'), ('ast', 'Asturian'), ('az', 'Azerbaijani'), ('bg', 'Bulgarian'), ('be', 'Belarusian'), ('bn', 'Bengali'), ('br', 'Breton'), ('bs', 'Bosnian'), ('ca', 'Catalan'), ('cs', 'Czech'), ('cy', 'Welsh'), ('da', 'Danish'), ('de', 'German'), ('dsb', 'Lower Sorbian'), ('el', 'Greek'), ('en', 'English'), ('en-au', 'Australian English'), ('en-gb', 'British English'), ('eo', 'Esperanto'), ('es', 'Spanish'), ('es-ar', 'Argentinian Spanish'), ('es-co', 'Colombian Spanish'), ('es-mx', 'Mexican Spanish'), ('es-ni', 'Nicaraguan Spanish'), ('es-ve', 'Venezuelan Spanish'), ('et', 'Estonian'), ('eu', 'Basque'), ('fa', 'Persian'), ('fi', 'Finnish'), ('fr', 'French'), ('fy', 'Frisian'), ('ga', 'Irish'), ('gd', 'Scottish Gaelic'), ('gl', 'Galician'), ('he', 'Hebrew'), ('hi', 'Hindi'), ('hr', 'Croatian'), ('hsb', 'Upper Sorbian'), ('hu', 'Hungarian'), ('ia', 'Interlingua'), ('id', 'Indonesian'), ('io', 'Ido'), ('is', 'Icelandic'), ('it', 'Italian'), ('ja', 'Japanese'), ('ka', 'Georgian'), ('kk', 'Kazakh'), ('km', 'Khmer'), ('kn', 'Kannada'), ('ko', 'Korean'), ('lb', 'Luxembourgish'), ('lt', 'Lithuanian'), ('lv', 'Latvian'), ('mk', 'Macedonian'), ('ml', 'Malayalam'), ('mn', 'Mongolian'), ('mr', 'Marathi'), ('my', 'Burmese'), ('nb', 'Norwegian Bokmål'), ('ne', 'Nepali'), ('nl', 'Dutch'), ('nn', 'Norwegian Nynorsk'), ('os', 'Ossetic'), ('pa', 'Punjabi'), ('pl', 'Polish'), ('pt', 'Portuguese'), ('pt-br', 'Brazilian Portuguese'), ('ro', 'Romanian'), ('ru', 'Russian'), ('sk', 'Slovak'), ('sl', 'Slovenian'), ('sq', 'Albanian'), ('sr', 'Serbian'), ('sr-latn', 'Serbian Latin'), ('sv', 'Swedish'), ('sw', 'Swahili'), ('ta', 'Tamil'), ('te', 'Telugu'), ('th', 'Thai'), ('tr', 'Turkish'), ('tt', 'Tatar'), ('udm', 'Udmurt'), ('uk', 'Ukrainian'), ('ur', 'Urdu'), ('vi', 'Vietnamese'), ('zh-hans', 'Simplified Chinese'), ('zh-hant', 'Traditional Chinese')] +LANGUAGES_BIDI = ['he', 'ar', 'fa', 'ur'] +LANGUAGE_CODE = 'en-us' +LANGUAGE_COOKIE_AGE = None +LANGUAGE_COOKIE_DOMAIN = None +LANGUAGE_COOKIE_NAME = 'django_language' +LANGUAGE_COOKIE_PATH = '/' +LDP_RDF_CONTEXT = 'https://cdn.happy-dev.fr/owl/hdcontext.jsonld' +LOCALE_PATHS = [] +LOGGING = {} +LOGGING_CONFIG = 'logging.config.dictConfig' +LOGIN_REDIRECT_URL = '/accounts/profile/' +LOGIN_URL = '/accounts/login/' +LOGOUT_REDIRECT_URL = None +MANAGERS = [] +MEDIA_ROOT = '' +MEDIA_URL = '' +MESSAGE_STORAGE = 'django.contrib.messages.storage.fallback.FallbackStorage' +MIDDLEWARE = ['django.middleware.security.SecurityMiddleware', 'django.contrib.sessions.middleware.SessionMiddleware', 'django.middleware.common.CommonMiddleware', 'django.middleware.csrf.CsrfViewMiddleware', 'django.contrib.auth.middleware.AuthenticationMiddleware', 'django.contrib.messages.middleware.MessageMiddleware', 'django.middleware.clickjacking.XFrameOptionsMiddleware'] +MIDDLEWARE_CLASSES = ['django.middleware.common.CommonMiddleware', 'django.middleware.csrf.CsrfViewMiddleware'] +MIGRATION_MODULES = {} +MONTH_DAY_FORMAT = 'F j' +NUMBER_GROUPING = 0 +OIDC_USERINFO = 'ldpserverhdparis.oidc_provider_settings.userinfo' +PASSWORD_HASHERS = '********************' +PASSWORD_RESET_TIMEOUT_DAYS = '********************' +PREPEND_WWW = False +ROOT_URLCONF = 'ldpserverhdparis.urls' +SECRET_KEY = '********************' +SECURE_BROWSER_XSS_FILTER = False +SECURE_CONTENT_TYPE_NOSNIFF = False +SECURE_HSTS_INCLUDE_SUBDOMAINS = False +SECURE_HSTS_PRELOAD = False +SECURE_HSTS_SECONDS = 0 +SECURE_PROXY_SSL_HEADER = None +SECURE_REDIRECT_EXEMPT = [] +SECURE_SSL_HOST = None +SECURE_SSL_REDIRECT = False +SERVER_EMAIL = 'root@localhost' +SESSION_CACHE_ALIAS = 'default' +SESSION_COOKIE_AGE = 1209600 +SESSION_COOKIE_DOMAIN = None +SESSION_COOKIE_HTTPONLY = True +SESSION_COOKIE_NAME = 'sessionid' +SESSION_COOKIE_PATH = '/' +SESSION_COOKIE_SECURE = False +SESSION_ENGINE = 'django.contrib.sessions.backends.db' +SESSION_EXPIRE_AT_BROWSER_CLOSE = False +SESSION_FILE_PATH = None +SESSION_SAVE_EVERY_REQUEST = False +SESSION_SERIALIZER = 'django.contrib.sessions.serializers.JSONSerializer' +SETTINGS_MODULE = 'ldpserverhdparis.settings' +SHORT_DATETIME_FORMAT = 'm/d/Y P' +SHORT_DATE_FORMAT = 'm/d/Y' +SIGNING_BACKEND = 'django.core.signing.TimestampSigner' +SILENCED_SYSTEM_CHECKS = [] +STATICFILES_DIRS = [] +STATICFILES_FINDERS = ['django.contrib.staticfiles.finders.FileSystemFinder', 'django.contrib.staticfiles.finders.AppDirectoriesFinder'] +STATICFILES_STORAGE = 'django.contrib.staticfiles.storage.StaticFilesStorage' +STATIC_ROOT = '/home/ubuntu/dev/test/static' +STATIC_URL = '/static/' +TEMPLATES = [{'BACKEND': 'django.template.backends.django.DjangoTemplates', 'DIRS': [], 'APP_DIRS': True, 'OPTIONS': {'context_processors': ['django.template.context_processors.debug', 'django.template.context_processors.request', 'django.contrib.auth.context_processors.auth', 'django.contrib.messages.context_processors.messages']}}] +TEST_NON_SERIALIZED_APPS = [] +TEST_RUNNER = 'django.test.runner.DiscoverRunner' +THOUSAND_SEPARATOR = ',' +TIME_FORMAT = 'P' +TIME_INPUT_FORMATS = ['%H:%M:%S', '%H:%M:%S.%f', '%H:%M'] +TIME_ZONE = 'UTC' +USE_ETAGS = False +USE_I18N = True +USE_L10N = True +USE_THOUSAND_SEPARATOR = False +USE_TZ = True +USE_X_FORWARDED_HOST = False +USE_X_FORWARDED_PORT = False +WSGI_APPLICATION = 'ldpserverhdparis.wsgi.application' +X_FRAME_OPTIONS = 'SAMEORIGIN' +YEAR_MONTH_FORMAT = 'F Y' + + +You're seeing this error because you have DEBUG = True in your +Django settings file. Change that to False, and Django will +display a standard page generated by the handler for this status code. + diff --git a/src/index.pug b/src/index.pug index 63ec80d..55c5582 100644 --- a/src/index.pug +++ b/src/index.pug @@ -21,6 +21,8 @@ html(lang="en") include page-member.pug #job-offers(hidden) include page-job-offers.pug + #job-offer-create(hidden) + include page-job-offer-create.pug //-#projects(hidden) include page-projects.pug #project(hidden) diff --git a/src/menu.pug b/src/menu.pug index 7a4c898..76ff45c 100644 --- a/src/menu.pug +++ b/src/menu.pug @@ -8,6 +8,7 @@ div sib-route(hidden, name='member', id-prefix=`${sdn}/members/`) sib-route(name='job-offers') div.icon-briefcase Job offers + sib-route(hidden, name='job-offer-create') div div.icon-folder-alt Projects sib-display( diff --git a/src/page-group-create.pug b/src/page-group-create.pug index 8da19e8..585e673 100644 --- a/src/page-group-create.pug +++ b/src/page-group-create.pug @@ -3,6 +3,7 @@ .form-view sib-form.block( data-src=`${sdn}/channels/`, + data-fields="name, description, owner, members, jabberID, jabberRoom" range-owner=`${sdn}/members/`, widget-members='sib-form-multiple-dropdown', range-members=`${sdn}/members/` diff --git a/src/page-group-edit.pug b/src/page-group-edit.pug index 3d42147..c85ee85 100644 --- a/src/page-group-edit.pug +++ b/src/page-group-edit.pug @@ -3,6 +3,7 @@ .form-view sib-form.block( range-owner=`${sdn}/members/`, + data-fields="name, description, owner, members, jabberID, jabberRoom" range-members=`${sdn}/members/`, widget-members='sib-form-multiple-dropdown', bind-resources diff --git a/src/page-group-profile.pug b/src/page-group-profile.pug index 71cb0d4..0ecb4dc 100644 --- a/src/page-group-profile.pug +++ b/src/page-group-profile.pug @@ -1,17 +1,49 @@ - - -#group-profile +.frame sib-display( - data-fields='name, description, owner', - widget-owner='hdapp-member', + data-fields='name, label-description, description', + value-label-description="Description:" bind-resources ) - h2.section.skills Participants + h2.section.skills In group sib-display( id-suffix='members', - data-fields='avatar, user', - widget-avatar='sib-display-img', - widget-user='hdapp-userinfo', + data-fields='user-thumb', + set-user-thumb='member.avatar, first_name, last_name', + widget-member.avatar='sib-display-img', bind-resources ) +//- + sib-display#offers-list.limiter( + data-src=`${sdn}/job-offers/`, + data-fields='date, user-thumb, title, description, skills', + widget-skills='sib-display-lookuplist', + set-user-thumb='author.member.avatar, author.first_name, author.last_name' + widget-author.member.avatar='sib-display-img', + set-date='closingDate, creationDate', + widget-closingDate='hdapp-closing-date', + set-searchset='title, description, skills', + search-fields='searchset' + ) + + sib-display( + data-fields='title, label-description, description, client', + set-title='number, client.name, name', + set-client='label-client, client.name, client.logo, client.address', + value-label-description="Description:" + value-label-client="Client:" + widget-client.logo='sib-display-img', + widget-client='hdapp-client', + widget-team='sib-display-lookuplist', + bind-resources, + ) + + h2 Team: + sib-display.members-list-condensed( + id-suffix='team', + data-fields='member.avatar, member.user', + widget-member.avatar='sib-display-img', + widget-member.user='hdapp-userinfo', + next='member', + bind-resources, + ) \ No newline at end of file diff --git a/src/page-group.pug b/src/page-group.pug index 9cf778d..5ae06da 100644 --- a/src/page-group.pug +++ b/src/page-group.pug @@ -3,8 +3,9 @@ sib-router#group-router(default-route='group-chat') div Chat sib-route(name='group-profile') div Info - sib-route(name='group-edit') - div Edit + sib-ac-checker(permission='change' bind-resources) + sib-route(name='group-edit') + div Edit sib-route(name='group-create') div Add new #network-views-container diff --git a/src/page-job-offer-create.pug b/src/page-job-offer-create.pug new file mode 100644 index 0000000..4bf70f2 --- /dev/null +++ b/src/page-job-offer-create.pug @@ -0,0 +1,9 @@ +#job-create + h1 New job offer + .form-view + sib-form.block( + data-src=`${sdn}/job-offers/`, + data-fields="author, description, skills", + widget-author='sib-form-dropdown', + widget-skills='sib-form-multiple-dropdown', + ) diff --git a/src/page-job-offers.pug b/src/page-job-offers.pug index cd5c160..95877e1 100644 --- a/src/page-job-offers.pug +++ b/src/page-job-offers.pug @@ -1,11 +1,15 @@ div - h1 New offers + sib-trigger(next="job-offer-create" class="new-job-offer") Post a new offer + h1 New offers span Here you can find and post offers sib-display#offers-list.limiter( data-src=`${sdn}/job-offers/`, - data-fields='author, title, description, skills', - set-searchset='title, description', + data-fields='date, user-thumb, title, description, skills', widget-skills='sib-display-lookuplist', - widget-author='hdapp-author', + set-user-thumb='author.member.avatar, author.first_name, author.last_name' + widget-author.member.avatar='sib-display-img', + set-date='closingDate, creationDate', + widget-closingDate='hdapp-closing-date', + set-searchset='title, description, skills', search-fields='searchset' ) \ No newline at end of file diff --git a/src/page-member-profile.pug b/src/page-member-profile.pug index fe21123..47b82a0 100644 --- a/src/page-member-profile.pug +++ b/src/page-member-profile.pug @@ -1,11 +1,17 @@ sib-display#member-info( - data-fields='header, cell, role, email, tel, roles, website, skills', - set-header='avatar, user, pseudonym, bio', + data-fields='available, header, name, pseudonym, infos, skills', + set-header='avatar', + set-infos='cell, roles, user.email, number, foaf:homepage', + set-name='user.first_name, user.last_name', set-pseudonym='before-pseudo, pseudo', + value-before-pseudo='@', + widget-available='hdapp-available', widget-avatar='sib-display-img', widget-user='hdapp-userinfo', widget-cell='hdapp-usercell', widget-number='sib-display-tel', + widget-foaf:homepage='hdapp-hyperlink', + widget-user.email='sib-display-mailto', widget-roles='sib-display-lookuplist', widget-skills='sib-display-lookuplist', bind-resources diff --git a/src/page-member.pug b/src/page-member.pug index 77ed6d3..7f4f133 100644 --- a/src/page-member.pug +++ b/src/page-member.pug @@ -12,7 +12,7 @@ sib-router#member-router(default-route='member-chat') div #member-chat include page-member-chat.pug - #member-profile.limiter + #member-profile include page-member-profile.pug #member-edit include page-member-edit.pug \ No newline at end of file diff --git a/src/page-members.pug b/src/page-members.pug index 3c57e39..79d735d 100644 --- a/src/page-members.pug +++ b/src/page-members.pug @@ -2,17 +2,34 @@ div h1 Members sib-display#profiles-list( data-src=`${sdn}/members/`, - data-fields='header, footer' + data-fields='header, infos' set-header='avatar, user, pseudonym, bio', - set-footer='cell, roles, skills', + set-infos='cell, roles, user.email, foaf:homepage, skills', set-pseudonym='before-pseudo, pseudo', value-before-pseudo='@', widget-avatar='sib-display-img', widget-user='hdapp-userinfo', + widget-user.email='sib-display-mailto', + widget-foaf:hompage='hdapp-hyperlink', widget-cell='hdapp-usercell', widget-roles='sib-display-lookuplist', widget-skills='sib-display-lookuplist', set-searchset='pseudo', search-fields='searchset', - next='member' - ) + next='member') + + //- sib-display#profiles-list( + data-src=`${sdn}/users/`, + data-fields='header, footer' + set-header='member.avatar, member.user, pseudonym, member.bio', + set-footer='member.cell, member.roles, member.skills', + set-pseudonym='before-pseudo, pseudo', + value-before-pseudo='@', + widget-member.avatar='sib-display-img', + widget-member.user='hdapp-userinfo', + widget-member.cell='hdapp-usercell', + widget-member.roles='sib-display-lookuplist', + widget-member.skills='sib-display-lookuplist', + set-searchset='last_name', + search-fields='searchset', + next='member') \ No newline at end of file diff --git a/src/page-project-chat.pug b/src/page-project-chat.pug index b209ca7..59730e7 100644 --- a/src/page-project-chat.pug +++ b/src/page-project-chat.pug @@ -1,4 +1,4 @@ -#project-chat.chat-view +.chat-view sib-chat( data-authentication='login', data-auto-login='true', diff --git a/src/page-project-create.pug b/src/page-project-create.pug index 4c0a529..11d7b45 100644 --- a/src/page-project-create.pug +++ b/src/page-project-create.pug @@ -1,9 +1,8 @@ -#project-create - h1 New project - .form-view - sib-form.block( - data-src=`${sdn}/projects/`, - range-client=`${sdn}/clients/`, - widget-team='sib-form-multiple-dropdown', - range-team=`${sdn}/members/` - ) +h1 New project +.form-view + sib-form.block( + data-src=`${sdn}/projects/`, + range-client=`${sdn}/clients/`, + widget-team='sib-form-multiple-dropdown', + range-team=`${sdn}/members/` + ) diff --git a/src/page-project-edit.pug b/src/page-project-edit.pug index 4567883..51d3bd2 100644 --- a/src/page-project-edit.pug +++ b/src/page-project-edit.pug @@ -1,13 +1,12 @@ -#project-edit - h1 Edit project - //- sib-display(data-fields="name" bind-resources)] - .form-view - sib-form.block( - range-client=`${sdn}/clients/`, - range-team=`${sdn}/members/`, - data-fields=`name, number, client, description, team, jabberRoom, foaf:jabberID`, - widget-jabberRoom='sib-form-checkbox', - widget-description='sib-form-textarea', - widget-team='sib-form-multiple-dropdown', - bind-resources - ) +h1 Edit project + //- sib-display(data-fields="name" bind-resources)] +.form-view + sib-form.block( + range-client=`${sdn}/clients/`, + range-team=`${sdn}/members/`, + data-fields=`name, number, client, description, team, jabberRoom, foaf:jabberID`, + widget-jabberRoom='sib-form-checkbox', + widget-description='sib-form-textarea', + widget-team='sib-form-multiple-dropdown', + bind-resources + ) diff --git a/src/page-project-profile.pug b/src/page-project-profile.pug index b272a27..dd9c17b 100644 --- a/src/page-project-profile.pug +++ b/src/page-project-profile.pug @@ -1,18 +1,22 @@ -#project-profile +.frame sib-display( - data-fields='title, description, client, team', - set-title='number, client, name', + data-fields='title, label-description, description, client', + set-title='number, client.name, name', + set-client='label-client, client.name, client.logo, client.address', + value-label-description="Description:" + value-label-client="Client:" + widget-client.logo='sib-display-img', widget-client='hdapp-client', widget-team='sib-display-lookuplist', bind-resources, ) - h3 Team + h2 Team: sib-display.members-list-condensed( id-suffix='team', - data-fields='avatar, user', - widget-avatar='sib-display-img', - widget-user='hdapp-userinfo', + data-fields='member.avatar, member.user', + widget-member.avatar='sib-display-img', + widget-member.user='hdapp-userinfo', next='member', bind-resources, ) \ No newline at end of file diff --git a/src/page-project.pug b/src/page-project.pug index abdef02..e2e5e16 100644 --- a/src/page-project.pug +++ b/src/page-project.pug @@ -8,7 +8,11 @@ sib-router#project-router(default-route='project-chat') sib-route(name='project-create') div Add new #project-views-container - include page-project-chat.pug - include page-project-profile.pug - include page-project-edit.pug - include page-project-create.pug + #project-chat + include page-project-chat.pug + #project-profile + include page-project-profile.pug + #project-edit + include page-project-edit.pug + #project-create + include page-project-create.pug diff --git a/src/scripts/hd-widgets.js b/src/scripts/hd-widgets.js index 2c6c401..7f0c784 100644 --- a/src/scripts/hd-widgets.js +++ b/src/scripts/hd-widgets.js @@ -90,6 +90,7 @@ document.addEventListener('WebComponentsReady', function(event) { return 'div'; } getTemplate(value, index) { + return JSON.stringify(value); var firstname, lastname; if (typeof value == 'object') if (Object.keys(value).length > 1) { @@ -109,4 +110,53 @@ document.addEventListener('WebComponentsReady', function(event) { } } customElements.define('hdapp-author', HDAppAuthor); + + class HDAppClosingDate extends SIBWidget { + get template() { + return this.value + ? `closed (${this.value})` + : 'open'; + } + + render() { + console.log(this.value); + this.innerHTML = this.template; + } + } + + customElements.define('hdapp-closing-date', HDAppClosingDate); + + class HDAppAvailable extends SIBWidget { + get template() { + return this.value + ? 'Available' + : 'Not available'; + } + + render() { + console.log(this.value); + this.innerHTML = this.template; + } + } + + customElements.define('hdapp-available', HDAppAvailable); + + class HDAppHyperlink extends SIBWidget { + get template() { + const escaped = this.value + .replace(/&/g, '&') + .replace(//g, '>') + .replace(/"/g, '"') + .replace(/'/g, '''); + return `${escaped}`; + } + + render() { + console.log(this.value); + this.innerHTML = this.template; + } + } + + customElements.define('hdapp-hyperlink', HDAppHyperlink); }); diff --git a/src/styles/content.scss b/src/styles/content.scss index 273603e..3157c03 100644 --- a/src/styles/content.scss +++ b/src/styles/content.scss @@ -1,11 +1,16 @@ // job offers +.new-job-offer { + @extend %button; + text-transform: uppercase; + float: right; +} #offers-list { > div { > sib-display { display: block; margin: 1em 0; @extend %frame; - padding: 0.5em 1em; + padding: 2em; /*&:nth-child(odd) { background-color: $color-grey-light; }*/ @@ -16,37 +21,73 @@ label { display: none; } - hdapp-author { - ul { - @include list-reset(); - } - } } } } +[name='user-thumb'] { + display: flex; + align-items: center; + margin: -0.25em; + > * { + margin: 0.25em; + } + sib-display-img { + width: 2.5em; + height: 2.5em; + overflow: hidden; + border-radius: 100%; + } +} + +[name='date'] { + float: right; + display: flex; + align-items: center; + margin: -0.25em; + > * { + margin: 0.25em; + } + strong { + @extend %button; + } +} // skills -sib-display-lookuplist[name='skills'] { - ul, - li { +#member-profile sib-display-lookuplist, +#profiles-list sib-display-lookuplist, +sib-display-lookuplist { + &[name$='skills'] { display: block; - margin: 0; - padding: 0; - list-style: none; - } - ul { - display: flex; - flex-wrap: wrap; - margin: 0 -0.25em; - } - li { - padding: 0.5em 1em; - border: 1px solid; - border-radius: 0.25em; - margin: 0.25em; + ul, + li { + display: block; + margin: 0; + padding: 0; + list-style: none; + } + ul { + display: flex; + flex-wrap: wrap; + margin: 1em -0.25em; + } + li { + padding: 0.5em 1em; + border: 1px solid; + border-radius: 0.25em; + margin: 0.25em; + } } } +// group +#group-profile { + sib-display-div[name='name'] div { + @extend h1; + } + sib-display-div[name='label-description'] div { + @extend h2; + } +} // chat .chat-view { @@ -61,6 +102,7 @@ sib-display-lookuplist[name='skills'] { } } +// member-profile && members .members-list-condensed { display: block; img { @@ -74,6 +116,7 @@ sib-display-lookuplist[name='skills'] { display: none; } > div > sib-display > div { + margin: 1em 0; display: flex; } ul { @@ -81,14 +124,15 @@ sib-display-lookuplist[name='skills'] { } } -// member-profile && member +#profiles-list > div > sib-display { + cursor: pointer; +} sib-display#member-info, #profiles-list > div > sib-display { display: block; position: relative; @extend %frame; padding: 1em; - cursor: pointer; label { display: none; @@ -113,7 +157,7 @@ sib-display#member-info, } div[name='header'] { - border-top: 2em solid $color-grey-light; + // border-top: 2em solid $color-grey-light; border-bottom: 1px solid $color-grey-light; padding-bottom: 1em; margin: -0.5em; @@ -129,11 +173,43 @@ sib-display#member-info, display: inline; } } - - ul{ - @include list-reset(); + [name=infos]{ + margin: 2em 0; + >*{ + display: block; + margin: 0.5em 0; + } } + ul[name$='roles'] * { + @include icon('user'); + } + ul[name$='cell'] * { + @include icon('location-pin'); + } + sib-display-mailto { + display: block; + @include icon('envelope'); + } + sib-display-tel { + display: block; + @include icon('phone'); + } + hdapp-hyperlink { + display: block; + @include icon('link'); + } + + sib-display-div[name$='foaf:homepage'] * { + @include icon('link'); + } +} +hdapp-available { + display: block; + text-align: right; + strong { + @extend %button; + } } #profiles-list { @@ -145,9 +221,44 @@ sib-display#member-info, grid-gap: 1em; } } +#member-profile, +#profiles-list { + ul { + @include list-reset(); + } +} +#member-profile { + @include media('width>tablet') { + div[name='header'] { + float: left; + width: 50%; + } + } + div[name='name'] { + @extend h1; + div { + display: inline-block; + margin-right: 0.4em; + } + } + div[name='pseudonym'] { + margin-top: -1em; + margin-bottom: 1em; + } + #member-info { + &:after { + content: ''; + display: block; + clear: both; + } + } +} // projects #project-profile { + div[name^='label-'] { + @extend h2; + } [name='title'] { @extend h1; > sib-display-div { @@ -159,6 +270,13 @@ sib-display#member-info, content: '#'; } } + div[name='name'] { + font-weight: normal; + &:before { + padding: 0 0.5em; + content: '/'; + } + } } } /* @@ -168,4 +286,4 @@ label { content: ':'; } } -*/ \ No newline at end of file +*/ diff --git a/src/styles/form.scss b/src/styles/form.scss index b7b92d4..a36b827 100644 --- a/src/styles/form.scss +++ b/src/styles/form.scss @@ -1,11 +1,18 @@ -//button, checkbox, color, date, datetime-local, email, file, hidden, image, month, number, password, radio, range, reset, search, submit, tel, text, time, url, week, datetime +%button { + display: inline-block; + padding: 0.5em 1em; + border: none; + border-radius: 100em; + background-color: $color-yellow; + color: $color-black; + font-weight: normal; +} .form-view { @extend %frame; padding: 1em; } - -sib-form.inline form { +sib-display sib-form form { margin: -0.5em; > * { margin: 0.5em; @@ -73,10 +80,7 @@ sib-form { input[type='file'], input[type='reset'], input[type='submit'] { - padding: 0.5em 1em; - border: none; - background-color: $color-yellow; - border-radius: 100em; + @extend %button; } input[type='reset'] { diff --git a/src/styles/icons.scss b/src/styles/icons.scss index ac9c733..477162d 100644 --- a/src/styles/icons.scss +++ b/src/styles/icons.scss @@ -90,7 +90,7 @@ $icons: ( fire: '\e01c', eyeglass: '\e01d', envelope-open: '\e01e', - envolope-letter: '\e01f', + envelope-letter: '\e01f', energy: '\e020', emotsmile: '\e021', disc: '\e022', @@ -193,7 +193,7 @@ $icons: ( cloud-download: '\e083', cloud-upload: '\e084', doc: '\e085', - envolope: '\e086', + envelope: '\e086', eye: '\e087', flag: '\e088', folder: '\e089', diff --git a/src/styles/main.scss b/src/styles/main.scss index a70bc40..bc832b2 100644 --- a/src/styles/main.scss +++ b/src/styles/main.scss @@ -4,7 +4,9 @@ display: none !important; } -*,*::before,*::after{ +*, +*::before, +*::after { box-sizing: inherit; } @@ -41,19 +43,27 @@ h6 { } h1 { - font-size: 1.23em; + font-size: 1.24em; } h2 { - font-size: 1.16em; + font-size: 1.04em; } h3 { - font-size: 1.12em; + font-size: .84em; +} +h4 { + font-size: 0.68em; } .debug { outline: 2px dotted red; } +.frame { + @extend %frame; + padding: 1em; +} + #header { background-color: $color-white; color: $color-black; diff --git a/src/styles/members.scss b/src/styles/members.scss deleted file mode 100644 index 9d266db..0000000 --- a/src/styles/members.scss +++ /dev/null @@ -1,220 +0,0 @@ - -// members -%img-circle { - $width: 55%; - display: block; - position: relative; - width: $width; - padding-bottom: $width; - height: 0; - margin: 2em auto; - img { - display: block; - position: absolute; - width: 100%; - height: 100%; - border-radius: 100%; - object-fit: cover; - object-position: center; - } -} - -%member { - sib-display-img { - @extend %img-circle; - } - display: block; - position: relative; - @extend %frame; - padding: 0.5em; - cursor: pointer; - - &::before, - &::after { - position: absolute; - top: 0; - right: 0; - bottom: 0; - left: 0; - transform: scale3d(0, 0, 1); - transition: transform 0.3s ease-out 0s; - background: #eac1; - content: ''; - pointer-events: none; - } - - &::before { - transform-origin: left top; - } - - &::after { - transform-origin: right bottom; - - background: #ace1; - } - - &:hover, - &:focus { - &::before, - &::after { - transform: scale3d(1, 1, 1); - } - } -} - -#profiles-list { - display: block; - div[name='header'] { - border-top: 2em solid $color-grey-light; - border-bottom: 1px solid $color-grey-light; - padding-bottom: 1em; - margin: -0.5em; - padding: 0.5em; - margin-bottom: 1em; - text-align: center; - } - - > div { - display: grid; - margin-top: 1em; - grid-template-columns: repeat(auto-fill, minmax(300px, 1fr)); - grid-gap: 1em; - label { - display: none; - } - - > sib-display { - @extend %member; - } - } - - hdapp-userinfo { - display: block; - color: $color-black; - font-size: 1.1em; - margin: 0.5em; - ul, - li { - display: block; - margin: 0; - padding: 0; - list-style: none; - } - } - - div[name='pseudonym'] { - font-size: 0.8em; - div { - display: inline; - } - } -} - - -// member -%detail-section { - font-weight: bold; - font-size: 18px; -} - -#member-chat { - #conversejs { - margin: none; - } -} -#member-info { - padding: 1em; - @extend %frame; -} - -#profiles-list, -#member-info { - img { - display: block; - } - - img { - width: 100%; - } - - div[name='name'] { - @extend %detail-section; - padding-top: 10px; - } - - div[name='name'], - div[name='location'] { - display: flex; - } -} - -#member-detail { - #member-info { - sib-display-mailto, - sib-display-tel { - display: block; - } - - a[name='email'], - a[name='number'] { - &::before { - font-family: FontAwesome; - padding-right: 4px; - color: black; - } - } - a[name='email'] { - &::before { - content: '\f0e0'; - } - } - a[name='number'] { - &::before { - content: '\f10b'; - font-size: 22px; - padding-left: 3px; - padding-right: 7px; - } - } - } - - .section { - position: relative; - - h2 { - @extend %detail-section; - margin-top: 40px; - } - } - - #member-skills { - display: flex; - flex-wrap: wrap; - - sib-display { - display: block; - background-color: $color-black; - color: $color-white; - border-radius: 100px; - padding: 3px 10px; - margin-bottom: 5px; - margin-right: 5px; - } - } -} - -@include media('width>phone') { - #member-detail { - #member-info { - sib-display-img { - display: block; - float: right; - width: 300px; - } - } - } -} - -#member-info { - @extend %member; -} diff --git a/www/lib/sib-core b/www/lib/sib-core index 8d61589..837d45a 160000 --- a/www/lib/sib-core +++ b/www/lib/sib-core @@ -1 +1 @@ -Subproject commit 8d615893e3f888a573e57ab7a67a41db4cd4c81f +Subproject commit 837d45a5a38c201456220ffe10e1dbc2ff526b55 diff --git a/www/test.html b/www/test.html index 1f95e27..2b5d36a 100644 --- a/www/test.html +++ b/www/test.html @@ -40,8 +40,9 @@

Members