From 224bbdf8a9f46167930c68ee769aea39df6a3006 Mon Sep 17 00:00:00 2001 From: Emil Ivov Date: Fri, 7 Oct 2016 17:27:32 -0500 Subject: [PATCH 1/6] Fixes desktop expansion on filmstirp shortcut hide. --- modules/UI/UI.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/UI/UI.js b/modules/UI/UI.js index 8cc5aa5f8..70678b97a 100644 --- a/modules/UI/UI.js +++ b/modules/UI/UI.js @@ -345,7 +345,6 @@ UI.mucJoined = function () { */ UI.handleToggleFilmStrip = () => { UI.toggleFilmStrip(); - VideoLayout.resizeVideoArea(true, false); }; /** @@ -729,6 +728,7 @@ UI.toggleSmileys = function () { UI.toggleFilmStrip = function () { var self = FilmStrip; self.toggleFilmStrip.apply(self, arguments); + VideoLayout.resizeVideoArea(true, false); }; /** From ab895280f4669921eb1c3610f3187de217d7df05 Mon Sep 17 00:00:00 2001 From: ibauersachs Date: Sun, 9 Oct 2016 08:36:35 +0000 Subject: [PATCH 2/6] Commit from translate.jitsi.org by user ibauersachs.: 265 of 265 strings translated (0 fuzzy). --- lang/languages-oc.json | 10 +-- lang/main-oc.json | 147 +++++++++++++++++++++++------------------ 2 files changed, 88 insertions(+), 69 deletions(-) diff --git a/lang/languages-oc.json b/lang/languages-oc.json index fc92685b5..f225f47f7 100644 --- a/lang/languages-oc.json +++ b/lang/languages-oc.json @@ -2,12 +2,14 @@ "en": "Anglés", "bg": "Bulgar", "de": "Aleman", - "es": "", + "es": "Castelhan", "fr": "Francés", - "hy": "", + "hy": "Armenian", "it": "Italian", - "oc": "", - "ptBR": "", + "oc": "Occitan", + "pl": "Polonés", + "ptBR": "Portugués (Brasil)", + "ru": "Rus", "sk": "Eslovac", "sl": "Eslovèn", "sv": "Suedés", diff --git a/lang/main-oc.json b/lang/main-oc.json index 962865933..3f2bff8a1 100644 --- a/lang/main-oc.json +++ b/lang/main-oc.json @@ -1,39 +1,37 @@ { - "contactlist": "Lista de contactes", + "contactlist": "Al telefòn", "connectionsettings": "Paramètres de connexion", "poweredby": "Produit per", - "downloadlogs": "Telecargament dels logs", "feedback": "Donatz-nos vòstre vejaire", "roomUrlDefaultMsg": "Vòstra conferéncia es en cors de creacion...", - "participant": "Participant", "me": "ieu", "speaker": "Nautparlaire", - "raisedHand": "", + "raisedHand": "Volriatz charrar", "defaultNickname": "ex. Joan Delpuèch", "defaultLink": "ex. __url__", - "calling": "", + "callingName": "__name__", "userMedia": { - "react-nativeGrantPermissions": "", - "chromeGrantPermissions": "", - "androidGrantPermissions": "", - "firefoxGrantPermissions": "", - "operaGrantPermissions": "", - "iexplorerGrantPermissions": "", - "safariGrantPermissions": "", - "nwjsGrantPermissions": "" + "react-nativeGrantPermissions": "Mercés de donar las permissions d'utilizar vòstra camerà e vòstre microfòn en butant sul boton Autorizar", + "chromeGrantPermissions": "Mercés de donar las permissions d'utilizar vòstra camerà e vòstre microfòn en butant sul boton Autorizar", + "androidGrantPermissions": "Mercés de donar las permissions d'utilizar vòstra camerà e vòstre microfòn en butant sul boton Autorizar", + "firefoxGrantPermissions": "Mercés de donar las permissions d'utilizar vòstra camerà e vòstre microfòn en butant sul boton Partejar l'aparelh seleccionat", + "operaGrantPermissions": "Mercés de donar las permissions d'utilizar vòstra camerà e vòstre microfòn en butant sul boton Autorizar", + "iexplorerGrantPermissions": "Mercés de donar las permissions d'utilizar vòstra camerà e vòstre microfòn en butant sul boton OK", + "safariGrantPermissions": "Mercés de donar las permissions d'utilizar vòstra camerà e vòstre microfòn en butant sul boton OK", + "nwjsGrantPermissions": "Mercés de donar las permissions d'utilizar vòstra camerà e vòstre microfòn" }, "keyboardShortcuts": { - "keyboardShortcuts": "", - "raiseHand": "", - "pushToTalk": "", - "toggleScreensharing": "", - "toggleFilmstrip": "", - "toggleShortcuts": "", - "focusLocal": "", - "focusRemote": "", - "toggleChat": "", - "mute": "", - "videoMute": "" + "keyboardShortcuts": "Acorchis de clavièr", + "raiseHand": "Demandar a parlar.", + "pushToTalk": "Butar per parlar", + "toggleScreensharing": "Caplevar entre camerà e partatge d'ecran", + "toggleFilmstrip": "Mostrar o escondre la vidèo", + "toggleShortcuts": "Afichar o amagar aiceste menú d'ajuda", + "focusLocal": "Focus sus la vidèo locala.", + "focusRemote": "Focus sus una de las vidèas aluènhadas.", + "toggleChat": "Dubrir o tampar lo panèl de conversacion.", + "mute": "Activar o desactivar lo microfòn.", + "videoMute": "Arrestar o lançar la vidèo locala." }, "welcomepage": { "go": "Crear", @@ -92,12 +90,14 @@ "sharedVideoMutedPopup": "Vòstra vidèo es estada mesa en mut
per que poscatz parlar als autres participants.", "micMutedPopup": "Vòstre microfòn es estat desactivat per fin que
poscatz profeitar plenament de vòstra vidèo partejada.", "unableToUnmutePopup": "Podètz pas reactivar vòstre microfòn pendent que la vidèo partejada es activada.", - "cameraDisabled": "", - "micDisabled": "" + "cameraDisabled": "La camerà es pas disponibla", + "micDisabled": "Lo microfòn es pas disponible", + "filmstrip": "", + "raiseHand": "Demandar la paraula" }, "bottomtoolbar": { "chat": "Dobrir / tampar lo chat", - "filmstrip": "Mostrar / amagar ma vidèo miniatura", + "filmstrip": "Mostrar / escondre vidèos", "contactlist": "Dobrir / tampar ma lista de contactes" }, "chat": { @@ -108,18 +108,27 @@ "messagebox": "Sasissètz vòstre tèxte..." }, "settings": { - "title": "PARAMÈTRES", + "title": "Paramètres", "update": "Mesa a jorn", "name": "Nom", - "startAudioMuted": "Aviar sens son", - "startVideoMuted": "Aviar sens vidèo", - "selectCamera": "Seleccionatz una camèra", - "selectMic": "Seleccionatz un microfòn", - "selectAudioOutput": "", - "followMe": "Activar \"me seguir\"", - "noDevice": "", - "noPermission": "", - "avatarUrl": "" + "startAudioMuted": "Tot lo mond comença sens son", + "startVideoMuted": "Tot lo mond comença escondut", + "selectCamera": "Camèra", + "selectMic": "Microfòn", + "selectAudioOutput": "Sortida àudio", + "followMe": "Tot lo mond me sèc", + "noDevice": "Pas cap", + "noPermission": "La permission d'utilizar l'aparelh es pas estada donada", + "cameraAndMic": "Camèra e microfòn", + "moderator": "MODERATOR", + "password": "DEFINIR UN SENHAL", + "audioVideo": "ÀUDIO E VIDÈO", + "setPasswordLabel": "Verrolhar vòstra sala amb un senhal" + }, + "profile": { + "title": "PERFIL", + "setDisplayNameLabel": "Causissètz vòstra nom", + "setEmailLabel": "Definir vòstre corrièl per gravatar" }, "videothumbnail": { "editnickname": "Clicatz per modificar
vòstre nom", @@ -129,7 +138,7 @@ "kick": "Exclure", "muted": "Mut", "domute": "Copar lo son", - "flip": "" + "flip": "Revirar" }, "connectionindicator": { "bitrate": "Debit :", @@ -162,7 +171,7 @@ "grantedToUnknown": "Dreits moderator acordats a $t(somebody) !", "muted": "Avètz començat la conversacion en mut.", "mutedTitle": "Sètz en mut !", - "raisedHand": "" + "raisedHand": "Volriá parlar." }, "dialog": { "kickMessage": "Ops! Sètz estat bandit de la reünion !", @@ -172,6 +181,7 @@ "connectError": "Ops! Quicòm a trucat e la connexion a la conferéncia es impossibla.", "connectErrorWithMsg": "Ops! Quicòm a trucat e la connexion a la conferéncia es impossibla: __msg__", "connecting": "Connexion en cors", + "copy": "Copiar", "error": "Error", "detectext": "Una error s'es produita pendent la deteccion de l'extension de partiment d'ecran.", "failtoinstall": "Fracàs de l'installacion de l'extension de partiment d'ecran", @@ -183,8 +193,8 @@ "lockMessage": "Impossible de verrolhar la conferéncia.", "warning": "Avertiment", "passwordNotSupported": "Los senhals de conferéncia son pas suportats.", - "sorry": "O planhèm", - "internalError": "Una error intèrna de l'aplicacion s'es produita [setRemoteDescription]", + "internalErrorTitle": "Error intèrna", + "internalError": "Ops ! Quicòm a pas fonccionat. L'error seguenta s'es produsida : [setRemoteDescription]", "unableToSwitch": "Impossible de cambiar lo flux vidèo.", "SLDFailure": "Ops! Quicòm a trucat e lo micro es pas estat copat! (Fracàs SLD)", "SRDFailure": "Ops! Quicòm a trucat e la camèra es pas estada copada! (Fracàs SRD)", @@ -216,26 +226,28 @@ "sipMsg": "Sasissètz un numèro SIP", "passwordCheck": "Sètz segur que volètz suprimir vòstre senhal ?", "passwordMsg": "Sasissètz un senhal per verrolhar la conferéncia", - "Invite": "Convidar", - "shareLink": "Partejatz aqueste ligam amb totas las personas que volètz convidar", + "shareLink": "Copiatz e partejatz aqueste ligam", "settings1": "Configuratz vòstra conferéncia", "settings2": "Los participants rejonhon la conferéncia en essent muts", "settings3": "Escaisses requesits

Sasissètz un senhal per verrolhar la conferéncia :", - "yourPassword": "vòstre senhal", + "yourPassword": "Picatz un novèl senhal utilizaire", "Back": "Retorn", "serviceUnavailable": "Servici indisponible", "gracefulShutdown": "Lo servici es actualament en mantenença. Ensajatz tornamai pus tard.", "Yes": "Òc", "reservationError": "Error del sistèma de reservacion", "reservationErrorMsg": "Còdi d'error: __code__, messatge: __msg__", - "password": "senhal", + "password": "Picar lo senhal", "userPassword": "senhal utilizaire", "token": "geton", - "tokenAuthFailed": "Fracàs de l'autentificacion amb lo servidor XMPP : geton pas valid", + "tokenAuthFailedTitle": "Fracàs de l'autentificacion", + "tokenAuthFailed": "O planhèm, sètz pas autorizat a rejónher l'apèl.", "displayNameRequired": "Sasissètz vòstre nom", "extensionRequired": "Extension requesida :", "firefoxExtensionPrompt": "Vos cal installar una extension Firefox per utilizar lo partiment d'ecran. Mercé ensajar tornamai aprèp l'installacion dempuèi aqueste ligam !", - "feedbackQuestion": "Cossí èra vòstra conferéncia ?", + "rateExperience": "Mercés de donar una nota à vòstra experiéncia.", + "feedbackHelp": "Vòstres comentaris nos ajudaràn a milhorar l'experiéncia vidèo", + "feedbackQuestion": "Contatz-nos cossí èra vòstre apèl !", "thankYou": "Mercé d'aver utilizat __appName__ !", "sorryFeedback": "Planhèm d'aprene aquò. Ne nos volètz dire mai ?", "liveStreaming": "Dirècte", @@ -245,20 +257,25 @@ "stopRecordingWarning": "Sètz segur que volètz arrestar l'enregistrament?", "stopLiveStreaming": "Arrestar lo dirècte", "stopRecording": "Arrestar l'enregistrament", - "doNotShowWarningAgain": "", - "permissionDenied": "", - "screenSharingPermissionDeniedError": "", - "micErrorPresent": "", - "cameraErrorPresent": "", - "cameraUnsupportedResolutionError": "", - "cameraUnknownError": "", - "cameraPermissionDeniedError": "", - "cameraNotFoundError": "", - "cameraConstraintFailedError": "", - "micUnknownError": "", - "micPermissionDeniedError": "", - "micNotFoundError": "", - "micConstraintFailedError": "" + "doNotShowWarningAgain": "Afichar pas mai aqueste avertiment", + "permissionDenied": "Permission Refusada", + "screenSharingPermissionDeniedError": "Vos cal autorizar lo partatge de vòstre ecran.", + "micErrorPresent": "I a agut una error pendent la connexion al microfòn.", + "cameraErrorPresent": "I a agut una error pendent la connexion a la camerà.", + "cameraUnsupportedResolutionError": "Vòstra camerà pren pas en carga la resolucion vidèo que cal.", + "cameraUnknownError": "Impossible d'emplegar la camerà per una rason desconeguda.", + "cameraPermissionDeniedError": "La camèra es pas estada trobada.", + "cameraNotFoundError": "La camèra es pas estada trobada.", + "cameraConstraintFailedError": "Vòstra camerà satisfà pas totas las constrentas necessàrias.", + "micUnknownError": "Impossible d'utilizar lo microfòn per una rason desconeguda.", + "micPermissionDeniedError": "Avètz pas donat l'autorizacion d'utilizar vòstre microfòn. Podètz encara participar a la conferéncia mai los demai vos ausiràn pas. Utilizatz lo boton del microfòn dins la barra d'adreça per resòlvre aquò.", + "micNotFoundError": "Lo microfòn es pas estat trobat.", + "micConstraintFailedError": "Vòstre microfòn satisfà pas totas las constrentas necessàrias.", + "micNotSendingData": "Podèm pas aver l'accès a vòstre microfòn. Mercés de ne causir un autre dins lo menú de paramètres o ensajatz de tornar dubrir l'aplicacion.", + "cameraNotSendingData": "Podèm pas aver l'accès a vòstra camèra. Mercés de verificar se una autra aplicacion es pas a l'utilizar, causissètz una autra camèra dins lo menú de paramètres o ensajatz de tornar dubrir l'aplicacion.", + "goToStore": "Anatz sul webstore", + "externalInstallationTitle": "Extension requesida :", + "externalInstallationMsg": "Avètz d'installar nòstra extension de partiment d'ecran." }, "email": { "sharedKey": [ @@ -306,8 +323,8 @@ "off": "Enregistrament arrestar", "failedToStart": "L'enregistrament n'as pas réussi a démarrer", "buttonTooltip": "Aviar / arrestar l'enregistrament", - "error": "", - "unavailable": "" + "error": "Fracàs de l'enregistrament. Mercés de tornar ensajar.", + "unavailable": "Lo servici d'enregistrament es actualament indisponible. Mercés de tornar ensajar mai tard." }, "liveStreaming": { "pending": "Començar lo dirècte...", @@ -317,7 +334,7 @@ "failedToStart": "Lo dirècte a pas capitat de s'aviar", "buttonTooltip": "Aviar / arrestar lo dirècte", "streamIdRequired": "Mercé de completar lo stream id per aviar lo dirècte.", - "error": "", - "busy": "" + "error": "Fracàs de la transmission en dirècte. Mercés de tornar ensajar.", + "busy": "Tots los enresgistraires son ocupats. Mercés de tornar ensajar mai tard." } } \ No newline at end of file From f66555a88fefb66d1936a3032b050e4b1794a068 Mon Sep 17 00:00:00 2001 From: ibauersachs Date: Sun, 9 Oct 2016 08:36:48 +0000 Subject: [PATCH 3/6] Commit from translate.jitsi.org by user ibauersachs.: 265 of 265 strings translated (0 fuzzy). --- lang/languages-hy.json | 10 +-- lang/main-hy.json | 143 +++++++++++++++++++++++------------------ 2 files changed, 86 insertions(+), 67 deletions(-) diff --git a/lang/languages-hy.json b/lang/languages-hy.json index 04d1a85ed..3f7e190a5 100644 --- a/lang/languages-hy.json +++ b/lang/languages-hy.json @@ -2,12 +2,14 @@ "en": "Անգլերեն", "bg": "Բուլղարերեն", "de": "Գերմաներեն ", - "es": "", + "es": "Իսպաներեն", "fr": "Ֆրանսերեն", - "hy": "", + "hy": "Հայերեն", "it": "Իտալերեն", - "oc": "", - "ptBR": "", + "oc": "Օքսիտաներեն", + "pl": "Լեհերեն", + "ptBR": "Պորտուգալերեն (Բրազիլիա)", + "ru": "Ռուսերեն", "sk": "Սլովակերեն", "sl": "Սլովեներեն ", "sv": "Շվեդերեն ", diff --git a/lang/main-hy.json b/lang/main-hy.json index 7dde9322a..a5e6f31e5 100644 --- a/lang/main-hy.json +++ b/lang/main-hy.json @@ -1,39 +1,37 @@ { - "contactlist": "ԿՈՆՏԱԿՏՆԵՐ", + "contactlist": "Զանգ", "connectionsettings": "Միացման կարգավորումներ", "poweredby": "Հիմնված է", - "downloadlogs": "Բեռնել log-էրը", "feedback": "Հայտնեք ձեր կարծիքը", "roomUrlDefaultMsg": "Ձեր կոնֆերանսը այժմ ստեղծվում է...", - "participant": "Մասնակից", "me": "ես", "speaker": "Հռետոր", - "raisedHand": "", + "raisedHand": "Ցանկանում է խոսել", "defaultNickname": "օրինակ՝ Պողոս Պողոսյան", "defaultLink": "օրինակ՝ __url__", - "calling": "", + "callingName": "__անուն__", "userMedia": { "react-nativeGrantPermissions": "", "chromeGrantPermissions": "", "androidGrantPermissions": "", - "firefoxGrantPermissions": "", - "operaGrantPermissions": "", + "firefoxGrantPermissions": "Խնդրում ենք տրամադրել տեսախցիկը և խոսափողը օգտագործելու թույլտվություններ տարածել նշված սարքը կոճակը", + "operaGrantPermissions": "Խնդրում ենք տրամադրել տեսախցիկը և խոսափողը օգտագործելու թույլտվություններ ընդունել կոճակը", "iexplorerGrantPermissions": "", - "safariGrantPermissions": "", - "nwjsGrantPermissions": "" + "safariGrantPermissions": "Խնդրում ենք տրամադրել տեսախցիկը և խոսափողը օգտագործելու թույլտվություններ Այո կոճակը", + "nwjsGrantPermissions": "Խնդրում ենք տրամադրել տեսախցիկը և խոսափողը օգտագործելու թույլտվություններ" }, "keyboardShortcuts": { - "keyboardShortcuts": "", - "raiseHand": "", - "pushToTalk": "", - "toggleScreensharing": "", - "toggleFilmstrip": "", - "toggleShortcuts": "", - "focusLocal": "", - "focusRemote": "", - "toggleChat": "", - "mute": "", - "videoMute": "" + "keyboardShortcuts": "Ստեղնաշարի դյուրանցումներ (shortcuts)", + "raiseHand": "Բարձրացրեք Ձեր ձեռքը", + "pushToTalk": "Սեղմեք խոսելու համար", + "toggleScreensharing": "Անցնել ֆոտոխցիկի և էկրանի փոխանակման միջև", + "toggleFilmstrip": "Ցույց տալ կամ թաքցնել տեսանյութերը", + "toggleShortcuts": "Ցույց տալ կամ թաքցնել այս օգնության մենյուն", + "focusLocal": "Կենտրոնանալ տեղական տեսանյութի վրա", + "focusRemote": "Կենտրոնանալ տեղական տեսանյութի վրա", + "toggleChat": "Բացել կամ փակել չատի պանելը", + "mute": "Անջատել կամ միացնել խոսափողը", + "videoMute": "Կանգնեցնել կամ սկսել տեղական տեսանյութը" }, "welcomepage": { "go": "ՄՈՒՏՔ", @@ -45,7 +43,7 @@ }, "feature2": { "title": "Պետք չէ արագ կապ", - "content": "Բազմամասնակից վիդեո կոնֆերանսները աշխատում են ընդամենը 128 Կբ/վ արագությամբ: Իսկ միայն էկրանի ցուցադրման կամ միայն ձայնի դեպքում՝ ավելի քիչ:" + "content": "Բազմամասնակից վիդեո կոնֆերանսները աշխատում են ընդամենը 128 Կբ/վ թողունակությամբ: Իսկ միայն ձայնի կամ էկրանի ցուցադրման դեպքում՝ ավելի քիչ:" }, "feature3": { "title": "Բաց կոդ", @@ -92,12 +90,14 @@ "sharedVideoMutedPopup": "Ձեր ցուցադրված տեսանյութի ձայնը անջատված է, այնպես որ
, կարող եք խոսել մյուս մասնակիցների հետ:", "micMutedPopup": "Ձեր խոսափողը անջատված է՝
կարող եք լիովին վայելել ձեր ցուցադրված տեսանյութը:", "unableToUnmutePopup": "Դուք չեք կարող միացնել ձայնը, քանի դեռ միանցված է ցուցադրվող տեսանյութը:", - "cameraDisabled": "", - "micDisabled": "" + "cameraDisabled": "Տեսախցիկը հասանելի չէ", + "micDisabled": "Խոսափողը հասանելի չէ", + "filmstrip": "", + "raiseHand": "Բարձրացրեք ձեռքը խոսելու համար" }, "bottomtoolbar": { "chat": "Բացել/փակել չատը", - "filmstrip": "Ցույղ տալ/թաքցնել ժապավենը", + "filmstrip": "Ցույց տալ/թաքցնել տեսանյութները", "contactlist": "Բացել/փակել կոնտակտների ցուցակը" }, "chat": { @@ -108,28 +108,37 @@ "messagebox": "Գրեք տեքստ..." }, "settings": { - "title": "ԿԱՐԳԱՎՈՐՈՒՄՆԵՐ", + "title": "Կարգավորումներ", "update": "Թարմացնել", "name": "Անուն", - "startAudioMuted": "Սկսել առանց ձայնի", - "startVideoMuted": "Սկսել առանց վիդեոյի", - "selectCamera": "Ընտրեք տեսախցիկը", - "selectMic": "Ընտրեք խոսափողը", - "selectAudioOutput": "", - "followMe": "Թույլ տալ ինձ հետևելը", - "noDevice": "", - "noPermission": "", - "avatarUrl": "" + "startAudioMuted": "Բոլորը սկսեն անջատած ձայնով", + "startVideoMuted": "Բոլորը սկսեցին թաքնված", + "selectCamera": "Տեսախցիկ", + "selectMic": "Խոսափող", + "selectAudioOutput": "Ձայնային ելք", + "followMe": "Բոլորը հետևում են ինձ", + "noDevice": "Ոչինչ", + "noPermission": "Սարքը օգտագործելու թույլտվությունը տրված չէ", + "cameraAndMic": "Տեսախցիկ և խոսափող", + "moderator": "MODERATOR", + "password": "Դնել գաղտնաբառ", + "audioVideo": "ձայն և տեսանյութ", + "setPasswordLabel": "Փակել սենյակը գաղտնաբառով" + }, + "profile": { + "title": "Էջ", + "setDisplayNameLabel": "Դնել Ձեր երևացող անունը", + "setEmailLabel": "Սահմանեք Ձեր gravatar էլ.փոստը" }, "videothumbnail": { "editnickname": "Սեղմեք Ձեր անունը
փոխելու համար", "moderator": "Այս կոնֆերանսի տերը", - "videomute": "Մասնակիցը անջատեց
իր տեսախցիկը", + "videomute": "Մասնակիցը անջատեց
իր տեսախցիկը", "mute": "Մասնակիցը անջատեց ձայնը", "kick": "Դուրս հանել", "muted": "Ձայնը անջատված է", "domute": "Անջատել ձայնը", - "flip": "" + "flip": "Շրջել" }, "connectionindicator": { "bitrate": "Բիթրեյթ", @@ -158,7 +167,7 @@ "grantedToUnknown": "Կարգավորիչի իրավունքները տրամադրված է $t(somebody)! -ին", "muted": "Դուք խոսակցությունը սկսեցիք անջատած ձայնով:", "mutedTitle": "Ձեր ձայնը անջատվա'ծ է", - "raisedHand": "" + "raisedHand": "Ցանկանում է խոսել" }, "dialog": { "kickMessage": "Վա՜յ: Ձեզ դուրս հանեցին հանդիպումից:", @@ -168,6 +177,7 @@ "connectError": "Ու՜պս! Ինչոր բան այն չէ և մենք չկարողացանք միանալ կոնֆերանսին:", "connectErrorWithMsg": "Ու՜պս! Ինչոր բան այն չէ և մենք չկարողացանք միանալ կոնֆերանսին: __msg__", "connecting": "Միանում է...", + "copy": "Պատճենել", "error": "Սխալ", "detectext": "Սխալ, երբ փորձում է հայտնաբերել էկրանի ցուցադրման ընդլայնումը:", "failtoinstall": "Չհաջողվեց տեղադրել էկրանի ցուցադրման ընդլայնումը", @@ -179,8 +189,8 @@ "lockMessage": "Ձախողվեց արգելափակել կոնֆերանսը:", "warning": "Ուշադրությու՝ն", "passwordNotSupported": "Սենյակների գաղտնաբառերը ներկայումս չեն ապահովվում:", - "sorry": "Ներողություն", - "internalError": "Ներքին ծրագրային սխալ [setRemoteDescription]", + "internalErrorTitle": "ներքին սխալ ", + "internalError": "Վայ: Ինչ-որ բան այնպես չէ .Հետեւյալը սխալն է տեղի ունեցել [setRemoteDescription]", "unableToSwitch": "Անհնար է անցնել վիդեո հոսքին:", "SLDFailure": "Ու՜պս: Ինչ-որ բան գնաց սխալ, և մենք չկարողացանք անջատել ձայնը (SLD Failure)", "SRDFailure": "Ու՜պս: Ինչ-որ բան գնաց սխալ, և մենք չկարողացանք անջատել տեսահոսքը (SRD Failure)", @@ -212,26 +222,28 @@ "sipMsg": "Նշեք SIP համարը", "passwordCheck": "Դուք վստա՞հ էք որ ցանկանում էք ջնջել Ձեր գաղտնաբառը։", "passwordMsg": "Սահմանել գաղտնաբառ ձեր սենյակը կողպելու համար", - "Invite": "Հրավիրել", - "shareLink": "Տարածել այս հղումը բոլոր նրանց ում կհրավիրեմ:", + "shareLink": "Պատճենել և կիսվել այս հղումով", "settings1": "Կարգավորել Ձեր կոնֆերանսը", "settings2": "Մասնակիցները միացան անջատվախ ձայնով", "settings3": "Պահանջվում է մականունը

Դրեք գաղտնաբառ Ձեր սենյակը արգելափակելու համար", - "yourPassword": "Ձեր գաղտնաբառը", + "yourPassword": "Մուտքագրեք նոր գաղտնաբառ:", "Back": "Վերադառնալ", "serviceUnavailable": "Ծառայությունը անհասանելի է", "gracefulShutdown": "Մեր ծառայությունը ներկայումս չի գործում տեխնիկական սպասարկման համար: Խնդրում ենք փորձեք ավելի ուշ:", "Yes": "Այո", "reservationError": "Վերապահման համակարգի սխալ", "reservationErrorMsg": "Սխալ. __code__, ծանուցում. __msg__", - "password": "Գաղտնաբառ", + "password": "Գրեք գաղտնաբառը", "userPassword": "օգտագործողի գաղտնաբառը", "token": "սիմվոլ", - "tokenAuthFailed": "Սխալ: XMPP սերվեր մուտք գործելուց. սխալ սիմվոլ", + "tokenAuthFailedTitle": "Վավերացումը չի ստացվել", + "tokenAuthFailed": "Ներողություն,Դուք ընդունված չեք այս զանգին միանալու համար", "displayNameRequired": "Խնդրում ենք մուտքագրել Ձեր ցուցադրման անունը", "extensionRequired": "Ընդլայնում է պահանջվում:", "firefoxExtensionPrompt": "Դուք պետք է տեղադրեք Firefox ընդլայնում, որպեսզի օգտագործել էկրանի փոխանակման ռեժիմը: Խնդրում ենք փորձեք կրկին՝ այն այստեղից ձեռք բերելուց հետո:", - "feedbackQuestion": "Ինչպիսին էր ձեր զանգը:", + "rateExperience": "Խնդրում ենք ներկայացրեք Ձեր հանդիպման փորձը", + "feedbackHelp": "Ձեր կարծիքը կօգնի մեզ բարելավել ձեր տեսափորձը", + "feedbackQuestion": "Պատմեք մեզ Ձեր զանգի մասին", "thankYou": "Շնորհակալություն __appName__ -ից օգտվելու համար:", "sorryFeedback": "Մենք շատ ցավում ենք լսել դա: Կուզե՞ք ինչոր բան ասել ավելին:", "liveStreaming": "Ուղիղ Հեռարձակում", @@ -241,20 +253,25 @@ "stopRecordingWarning": "Վստա՞հ եք որ ցանկանում եք կանգնացնել ձայնագրումը", "stopLiveStreaming": "Կանգնացնել ուղիղ հեռարձակումը:", "stopRecording": "Կանգնացնել ձայնագրումը", - "doNotShowWarningAgain": "", - "permissionDenied": "", - "screenSharingPermissionDeniedError": "", - "micErrorPresent": "", - "cameraErrorPresent": "", - "cameraUnsupportedResolutionError": "", - "cameraUnknownError": "", - "cameraPermissionDeniedError": "", - "cameraNotFoundError": "", - "cameraConstraintFailedError": "", - "micUnknownError": "", - "micPermissionDeniedError": "", - "micNotFoundError": "", - "micConstraintFailedError": "" + "doNotShowWarningAgain": "Այլևս ցույց չտալ այս նախազգուշական էջը", + "permissionDenied": "Թույլատվությունը արգելված է", + "screenSharingPermissionDeniedError": "Դուք չունեք թույլտվություն կիսվել Ձեր էկրանով", + "micErrorPresent": "Տեղի է ունեցել սխալ Ձեր խոսափողին միանալիս", + "cameraErrorPresent": "Սխալ տեսախցիկին միանալիս", + "cameraUnsupportedResolutionError": "Ձեր տեսախցիկը չունի պահանջվող վիդեո-չափ", + "cameraUnknownError": "Չի կարող օգտագործվել տեսախցիկը անհայտ պատճառով", + "cameraPermissionDeniedError": "Ձեզ թույլտվրված չէ օգտագործել Ձեր տեսախցիկը: Դուք կարող եք միացած մնալ համաժողովին, սակայն մյուսները չեն տեսնի ձեզ. Օգտագործեք տեսախցիկի կոճակը խնդիրը կարգավորելու համար", + "cameraNotFoundError": "Տեսախցիկ չի գտնվել", + "cameraConstraintFailedError": "Ձեր տեսախցիկը չի համապատասխանում որոշ խոչընդոտների", + "micUnknownError": "Չի կարող օգտագործվել տեսախցիկը անհայտ պատճառով", + "micPermissionDeniedError": "Ձեզ թույլտվրված չէ օգտագործել Ձեր խոսափողը: Դուք կարող եք միացած մնալ համաժողովին, սակայն մյուսները չեն լսի ձեզ. Օգտագործեք խոսափողի կոճակը խնդիրը կարգավորելու համար", + "micNotFoundError": "Խոսափող չի գտնվել", + "micConstraintFailedError": "Ձեր խոսափողը չի բավարարել պահանջվող խոչընդոտներից մի քանիսը ", + "micNotSendingData": "Մենք չեն կարողանում միանալ Ձեր խոսափողին: Խնդրում ենք ընտրել մեկ այլ սարք կարգավորումների ցանկից կամ փորձեք վերսկսել ծրագիրը", + "cameraNotSendingData": "Մենք չեն կարողանում միանալ Ձեր տեսախցիկին: Խնդրում ենք ստուգեք թե արդյոք մեկ ուրիշ սարք չի օգտագործում այն կամ ընտրեք մեկ այլ սարք կարգավորումների ցանկից կամ փորձեք վերսկսել ծրագիրը:", + "goToStore": "Գնալ դեպի վեբ խանութ", + "externalInstallationTitle": "Ընդլայնում է պահանջվում:", + "externalInstallationMsg": "Չհաջողվեց տեղադրել էկրանի ցուցադրման ընդլայնումը" }, "email": { "sharedKey": [ @@ -298,8 +315,8 @@ "off": "Ձայնագրությունը կանգնացված է", "failedToStart": "Ձայնագրությունը ստացվեց սկսել", "buttonTooltip": "Սկսել / կանգնացնել ձայնագրությունը", - "error": "", - "unavailable": "" + "error": "Ձայնագրությյունը չստացվեց: Փորձեք կրկին", + "unavailable": "Ձայնագրության ծառայությունը ներկայումս անհասանելի է: Խնդրում եմ փորձեք մի փոքր ուշ:" }, "liveStreaming": { "pending": "Սկսում ենք Ուղիղ Հեռարձակումը", @@ -309,7 +326,7 @@ "failedToStart": "Ուղիղ հեռարձակումը չստացվեց սկսել", "buttonTooltip": "Սկսել / կանգնեցնել ուղիղ հեռարձակումը", "streamIdRequired": "Խնդրում ենք լրացնել հոսքի ID-ն, որպեսզի կսկսի հեռարձակումը:", - "error": "", - "busy": "" + "error": "Ուղիղ հեռարձակումը չստացվեց: Փորձեք կրկին", + "busy": "Բոլոր ձայնագրիչները ներկայումս զբաղված են: Խնդրում ենք փորձեք մի փոքր ուշ:" } } \ No newline at end of file From 8fafd2b4eaaaf40f7be6cb38bd9811f4deba49b3 Mon Sep 17 00:00:00 2001 From: hristoterezov Date: Mon, 10 Oct 2016 17:03:28 -0500 Subject: [PATCH 4/6] feat(SmallVideo.js): New interface.config property for dominant speaker icon disable --- interface_config.js | 1 + modules/UI/videolayout/SmallVideo.js | 5 +++++ 2 files changed, 6 insertions(+) diff --git a/interface_config.js b/interface_config.js index 41530f6e1..35ddd2abd 100644 --- a/interface_config.js +++ b/interface_config.js @@ -42,6 +42,7 @@ var interfaceConfig = { // eslint-disable-line no-unused-vars // Enables feedback star animation. ENABLE_FEEDBACK_ANIMATION: false, DISABLE_FOCUS_INDICATOR: false, + DISABLE_DOMINANT_SPEAKER_INDICATOR: false, AUDIO_LEVEL_PRIMARY_COLOR: "rgba(255,255,255,0.7)", AUDIO_LEVEL_SECONDARY_COLOR: "rgba(255,255,255,0.4)" }; diff --git a/modules/UI/videolayout/SmallVideo.js b/modules/UI/videolayout/SmallVideo.js index 4f96e5853..90af5c4d7 100644 --- a/modules/UI/videolayout/SmallVideo.js +++ b/modules/UI/videolayout/SmallVideo.js @@ -508,6 +508,11 @@ SmallVideo.prototype.avatarChanged = function (avatarUrl) { * @param show whether to show or hide. */ SmallVideo.prototype.showDominantSpeakerIndicator = function (show) { + // Don't create and show dominant speaker indicator if + // DISABLE_DOMINANT_SPEAKER_INDICATOR is true + if (interfaceConfig.DISABLE_DOMINANT_SPEAKER_INDICATOR) + return; + if (!this.container) { console.warn( "Unable to set dominant speaker indicator - " + this.videoSpanId + " does not exist"); From 74f31db434e989da2f33cc611a7ed05db16acf5a Mon Sep 17 00:00:00 2001 From: yanas Date: Tue, 11 Oct 2016 19:08:24 -0500 Subject: [PATCH 5/6] Dialogs re-design, invite and password modifications --- conference.js | 48 +-- css/_animations.scss | 84 ++++ css/_base.scss | 53 ++- css/_contact_list.scss | 5 +- css/_functions.scss | 6 + css/_mixins.scss | 14 + css/_modaldialog.scss | 5 - css/_side_toolbar_container.scss | 26 +- css/_toolbars.scss | 8 +- css/_variables.scss | 28 +- css/buttons/_button-control.scss | 81 ++++ css/input-control/_input-control.scss | 49 +++ css/main.scss | 22 +- css/modals/_dialog.scss | 113 ++++-- css/modals/feedback/_feedback.scss | 102 +++-- css/shortcuts/_main.scss | 4 + css/shortcuts/_regular-key.scss | 11 + css/shortcuts/_shortcuts-list.scss | 12 + css/themes/_light.scss | 46 +++ index.html | 5 +- lang/main.json | 16 +- modules/UI/UI.js | 119 +++--- modules/UI/authentication/RoomLocker.js | 244 ----------- modules/UI/feedback/Feedback.js | 4 +- modules/UI/feedback/FeedbackWindow.js | 222 +++++----- modules/UI/invite/AskForPassword.js | 33 ++ modules/UI/invite/Invite.js | 216 ++++++++++ modules/UI/invite/InviteDialogView.js | 382 ++++++++++++++++++ modules/UI/invite/RoomLocker.js | 121 ++++++ modules/UI/recording/Recording.js | 53 ++- modules/UI/shared_video/SharedVideo.js | 40 +- .../UI/side_pannels/contactlist/Contact.js | 19 + .../side_pannels/contactlist/ContactList.js | 195 ++++----- .../contactlist/ContactListView.js | 262 ++++++++++++ modules/UI/toolbars/Toolbar.js | 149 ++----- modules/UI/util/MessageHandler.js | 99 ++++- modules/keyboardshortcut/keyboardshortcut.js | 18 +- service/UI/UIEvents.js | 42 +- 38 files changed, 2034 insertions(+), 922 deletions(-) create mode 100644 css/_animations.scss create mode 100644 css/_functions.scss create mode 100644 css/buttons/_button-control.scss create mode 100644 css/input-control/_input-control.scss create mode 100644 css/shortcuts/_main.scss create mode 100644 css/shortcuts/_regular-key.scss create mode 100644 css/shortcuts/_shortcuts-list.scss create mode 100644 css/themes/_light.scss delete mode 100644 modules/UI/authentication/RoomLocker.js create mode 100644 modules/UI/invite/AskForPassword.js create mode 100644 modules/UI/invite/Invite.js create mode 100644 modules/UI/invite/InviteDialogView.js create mode 100644 modules/UI/invite/RoomLocker.js create mode 100644 modules/UI/side_pannels/contactlist/Contact.js create mode 100644 modules/UI/side_pannels/contactlist/ContactListView.js diff --git a/conference.js b/conference.js index f578f4794..0ca477784 100644 --- a/conference.js +++ b/conference.js @@ -1,8 +1,8 @@ /* global $, APP, JitsiMeetJS, config, interfaceConfig */ import {openConnection} from './connection'; -//FIXME: -import createRoomLocker from './modules/UI/authentication/RoomLocker'; -//FIXME: +import Invite from './modules/UI/invite/Invite'; +import ContactList from './modules/UI/side_pannels/contactlist/ContactList'; + import AuthHandler from './modules/UI/authentication/AuthHandler'; import ConnectionQuality from './modules/connectionquality/connectionquality'; @@ -26,7 +26,7 @@ const ConferenceErrors = JitsiMeetJS.errors.conference; const TrackEvents = JitsiMeetJS.events.track; const TrackErrors = JitsiMeetJS.errors.track; -let room, connection, localAudio, localVideo, roomLocker; +let room, connection, localAudio, localVideo; /** * Indicates whether the connection is interrupted or not. @@ -363,18 +363,7 @@ class ConferenceConnector { switch (err) { // room is locked by the password case ConferenceErrors.PASSWORD_REQUIRED: - APP.UI.markRoomLocked(true); - roomLocker.requirePassword().then(function () { - let pass = roomLocker.password; - // we received that password is required, but user is trying - // anyway to login without a password, mark room as not locked - // in case he succeeds (maybe someone removed the password - // meanwhile), if it is still locked another password required - // will be received and the room again will be marked as locked - if (!pass) - APP.UI.markRoomLocked(false); - room.join(roomLocker.password); - }); + APP.UI.emitEvent(UIEvents.PASSWORD_REQUIRED); break; case ConferenceErrors.CONNECTION_ERROR: @@ -403,8 +392,7 @@ class ConferenceConnector { }, 5000); // notify user that auth is required - - AuthHandler.requireAuth(room, roomLocker.password); + AuthHandler.requireAuth(room, this.invite.getRoomLocker().password); break; case ConferenceErrors.RESERVATION_ERROR: @@ -576,6 +564,8 @@ export default { this.isDesktopSharingEnabled = JitsiMeetJS.isDesktopSharingEnabled(); + APP.UI.ContactList = new ContactList(room); + // if user didn't give access to mic or camera or doesn't have // them at all, we disable corresponding toolbar buttons if (!tracks.find((t) => t.isAudioTrack())) { @@ -888,7 +878,7 @@ export default { room = connection.initJitsiConference(APP.conference.roomName, this._getConferenceOptions()); this._setLocalAudioVideoStreams(localTracks); - roomLocker = createRoomLocker(room); + this.invite = new Invite(room); this._room = room; // FIXME do not use this let email = APP.settings.getEmail(); @@ -1316,13 +1306,6 @@ export default { APP.UI.updateRecordingState(status); }); - room.on(ConferenceEvents.LOCK_STATE_CHANGED, (state, error) => { - console.log("Received channel password lock change: ", state, - error); - APP.UI.markRoomLocked(state); - roomLocker.lockedElsewhere = state; - }); - room.on(ConferenceEvents.USER_STATUS_CHANGED, function (id, status) { APP.UI.updateUserStatus(id, status); }); @@ -1348,19 +1331,6 @@ export default { "resizable,scrollbars=yes,status=1"); }); - APP.UI.addListener(UIEvents.ROOM_LOCK_CLICKED, () => { - if (room.isModerator()) { - let promise = roomLocker.isLocked - ? roomLocker.askToUnlock() - : roomLocker.askToLock(); - promise.then(() => { - APP.UI.markRoomLocked(roomLocker.isLocked); - }); - } else { - roomLocker.notifyModeratorRequired(); - } - }); - APP.UI.addListener(UIEvents.AUDIO_MUTED, muteLocalAudio); APP.UI.addListener(UIEvents.VIDEO_MUTED, muteLocalVideo); diff --git a/css/_animations.scss b/css/_animations.scss new file mode 100644 index 000000000..1fcb06757 --- /dev/null +++ b/css/_animations.scss @@ -0,0 +1,84 @@ +/** +* Project animations +**/ + +/** + * START of slide in animation for extended toolbar. + */ +@include keyframes(slideInX) { + 0% { transform: translateX(-100%); } + 100% { transform: translateX(0%); } +} + +@include keyframes(slideOutX) { + 0% { transform: translateX(0%); } + 100% { transform: translateX(-100%); } +} + +@include keyframes(slideInExtX) { + 0% { transform: translateX(-500%); } + 100% { transform: translateX(0%); } +} + +@include keyframes(slideOutExtX) { + 0% { transform: translateX(0%); } + 100% { transform: translateX(-500%); } +} + +/** + * END of slide out animation for extended toolbar. + */ + +/** + * START of slide in / out animation for main toolbar. + */ +@include keyframes(slideInY) { + 100% { transform: translateY(0%); } +} + +@include keyframes(slideOutY) { + 0% { transform: translateY(0%); } + 100% { transform: translateY(-100%); } +} + +/** + * END of slide in / out animation for main toolbar. + */ + +/** + * START of slide in animation for extended toolbar (inner) panel. + */ + +// FIX: Can't use percentage because of breaking animation when width is changed +// (100% of 0 is also zero) Extracted this to config variable. +@include keyframes(slideInExt) { + from { left: -$sidebarWidth; } + to { left: 0; } +} + +@include keyframes(slideOutExt) { + from { left: 0; } + to { left: -$sidebarWidth; } +} + +/** + * END of slide in animation for extended toolbar (inner) panel. + */ + +/** +* START of slide in animation for extended toolbar container +**/ + +@include keyframes(slideOutExtContainer) { + from { width: $sidebarWidth; } + to { width: 0; } +} + +@include keyframes(slideInExtContainer) { + from { width: 0; } + to { width: $sidebarWidth; } +} + +/** +* END of slide in animation for extended toolbar container +**/ \ No newline at end of file diff --git a/css/_base.scss b/css/_base.scss index 497f49fd0..5799760db 100644 --- a/css/_base.scss +++ b/css/_base.scss @@ -13,6 +13,10 @@ html, body{ overflow: hidden; } +p { + margin: 0; +} + html, body, input, textarea, keygen, select, button { font-family: $baseFontFamily !important; } @@ -26,16 +30,17 @@ html, body, input, textarea, keygen, select, button { } input[type='text'], input[type='password'], textarea { - -webkit-user-select: text; - user-select: text; display: inline-block; - padding: 5px; - color: $defaultDarkColor; + width: 100%; + padding: 5px 7px; + color: $inputColor; border-radius: $borderRadius; line-height: 32px; + letter-spacing: $letterSpacing; height: 32px; text-align: left; border:1px solid $inputBorderColor; + background-color: $inputBackground; outline: none; /* removes the default outline */ resize: none; /* prevents the user-resizing, adjust to taste */ } @@ -43,7 +48,8 @@ input[type='text'], input[type='password'], textarea { textarea { overflow: hidden; word-wrap: break-word; - resize: horizontal; + resize: none; + line-height: 1.5em; } button.no-icon { @@ -53,12 +59,9 @@ button.no-icon { button, input, select, textarea { margin: 0; vertical-align: baseline; - color: $defaultDarkColor; - background: $inputLightBackground; - font-size: 12px; - border: none; - box-shadow: none; - outline: none; + color: $inputColor; + font-size: 1em; + letter-spacing: $letterSpacing; } button, select, input[type="button"], @@ -72,7 +75,7 @@ input[type="reset"], input[type="submit"] { button { color: #FFF; - background-color: $buttonBackground !important; + background-color: $buttonBackground; border-radius: $borderRadius; } @@ -159,6 +162,9 @@ form { display: flex !important; } +/** +* Tooltips +**/ .tipsy { z-index: $tooltipsZ; &-inner { @@ -169,3 +175,26 @@ form { border-color: $tooltipBg; } } + +/** +* Dialogs fade +*/ +.aui-blanket { + visibility: visible; +} + +.link { + color: $linkFontColor; + @include transition(color .1s ease-out); + + &:hover { + color: $linkHoverFontColor; + text-decoration: underline; + @include transition(color .1s ease-in); + } +} + +#inviteLinkRef { + -webkit-user-select: text; + user-select: text; +} \ No newline at end of file diff --git a/css/_contact_list.scss b/css/_contact_list.scss index 64f763151..afcc7d7d9 100644 --- a/css/_contact_list.scss +++ b/css/_contact_list.scss @@ -4,7 +4,8 @@ > ul#contacts { font-size: 12px; bottom: 0px; - margin: 0px; + margin: 0; + margin-top: 16px; padding: 0px; width: 100%; overflow: auto; @@ -24,7 +25,7 @@ white-space: nowrap; color: #FFF; font-size: 10pt; - padding: 6px 10%; + padding: 6px 30px; &:hover, &:active { diff --git a/css/_functions.scss b/css/_functions.scss new file mode 100644 index 000000000..8075204f6 --- /dev/null +++ b/css/_functions.scss @@ -0,0 +1,6 @@ +/* Functions */ + +/* Pixels to Ems function */ +@function em($value, $base: 16) { + @return #{$value / $base}em; +} \ No newline at end of file diff --git a/css/_mixins.scss b/css/_mixins.scss index 1ff283e51..fd63d81e9 100644 --- a/css/_mixins.scss +++ b/css/_mixins.scss @@ -18,6 +18,14 @@ animation: $animations; } +@mixin flex() { + display: -webkit-box; + display: -moz-box; + display: -ms-flexbox; + display: -webkit-flex; + display: flex; +} + /** * Keyframes mixin. */ @@ -63,3 +71,9 @@ -webkit-transition: $transition; transition: $transition; } + +@mixin box-shadow($type, $h, $y, $blur, $color) { + -webkit-box-shadow: $type $h $y $blur $color; + -moz-box-shadow: $type $h $y $blur $color; + box-shadow: $type $h $y $blur $color; +} \ No newline at end of file diff --git a/css/_modaldialog.scss b/css/_modaldialog.scss index d3025aa6b..2ffadc4c7 100644 --- a/css/_modaldialog.scss +++ b/css/_modaldialog.scss @@ -19,11 +19,6 @@ width: 100%; } -.jqibuttons button { - margin-right: 5px; - float:right; -} - button.jqidefaultbutton #inviteLinkRef { color: #2c8ad2; } diff --git a/css/_side_toolbar_container.scss b/css/_side_toolbar_container.scss index 0cbf02f85..4c9219bec 100644 --- a/css/_side_toolbar_container.scss +++ b/css/_side_toolbar_container.scss @@ -6,13 +6,13 @@ position:absolute; top: 0px; left: $defaultToolbarSize; - width: 0%; - height: 100%; - max-width: 200px; + width: 0; background-color: rgba(0,0,0,0.8); + height: 100%; + max-width: $sidebarWidth; z-index: 800; overflow: hidden; - letter-spacing: 1px; + letter-spacing: $titleLetterSpacing; /** * Labels inside the side panel. @@ -24,7 +24,8 @@ /** * Form elements and blocks. */ - input, label, select, button, a, .sideToolbarBlock { + input, label, select, a, + .sideToolbarBlock, .input-control, .button-control { display: inline-block; margin-top: 15px; margin-left: 10%; @@ -36,7 +37,7 @@ */ select, input[type="button"], input[type="text"], input[type="reset"], input[type="submit"] { - color: $defaultColor; + color: $inputColor; background: $inputBackground; border: none; } @@ -63,7 +64,10 @@ */ .sideToolbarContainer__inner { display: none; - width: 200px; + height: 100%; + width: $sidebarWidth; + position: absolute; + box-sizing: border-box; color: #FFF; /** @@ -100,6 +104,14 @@ .first { margin-top: 0px !important; } + + /** + * Buttons in the side toolbar container. + */ + .button-control { + margin: 9px 0; + width: 100%; + } } } diff --git a/css/_toolbars.scss b/css/_toolbars.scss index 6bb1c7091..22fbea927 100644 --- a/css/_toolbars.scss +++ b/css/_toolbars.scss @@ -45,13 +45,13 @@ border-radius: 3px; .first { - border-bottom-left-radius: 4px; - border-top-left-radius: 4px; + border-bottom-left-radius: 3px; + border-top-left-radius: 3px; } .last { - border-bottom-right-radius: 4px; - border-top-right-radius: 4px; + border-bottom-right-radius: 3px; + border-top-right-radius: 3px; } } diff --git a/css/_variables.scss b/css/_variables.scss index 77209ef11..df3bbe913 100644 --- a/css/_variables.scss +++ b/css/_variables.scss @@ -1,3 +1,8 @@ +/** +* Theme +*/ +@import 'themes/light'; + /** * Style variables */ @@ -21,7 +26,8 @@ $thumbnailToolbarHeight: 25px; */ $defaultColor: #F1F1F1; $defaultSideBarFontColor: #44A5FF; -$defaultDarkColor: #4F4F4F; +$defaultSemiDarkColor: #ACACAC; +$defaultDarkColor: #2b3d5c; $defaultBackground: #474747; $tooltipBg: rgba(0,0,0, 0.7); @@ -33,11 +39,8 @@ $toolbarBadgeColor: #FFFFFF; $toolbarToggleBackground: #12499C; // Main controls -$inputBackground: rgba(132, 132, 132, .5); $inputSemiBackground: rgba(132, 132, 132, .8); $inputLightBackground: #EBEBEB; -$inputBorderColor: #EBEBEB; -$buttonBackground: #44A5FF; // Video layout. $videoThumbnailHovered: #BFEBFF; @@ -58,10 +61,25 @@ $rateStarLabelColor: #333; */ $borderRadius: 4px; $defaultWatermarkLink: '../images/watermark.png'; +$sidebarWidth: 200px; /** * Z-indexes. TODO: Replace this by a function. */ $tooltipsZ: 901; $toolbarZ: 900; -$overlayZ: 800; \ No newline at end of file +$overlayZ: 800; + +/** + * Font Colors TODO: Change colors when general dialogs are implemented. + */ +$defaultFontColor: #777; +$defaultLightFontColor: #F1F1F1; +$defaultDarkFontColor: #000; +$buttonFontColor: #777; +$buttonHoverFontColor: #287ade; +$auiPrimaryButtonBg: #3572b0; +$auiPrimaryButtonHoverBg: #57647b; +$auiPrimaryButtonColor: #fff; +$auiIconColor: #707070; +$inputControlEmColor: #f29424; \ No newline at end of file diff --git a/css/buttons/_button-control.scss b/css/buttons/_button-control.scss new file mode 100644 index 000000000..98da4fd98 --- /dev/null +++ b/css/buttons/_button-control.scss @@ -0,0 +1,81 @@ +.button-control { + box-sizing: border-box; + display: inline-block; + border: 1px solid $buttonBorder; + vertical-align: baseline; + height: 30px; + padding: 4px 10px; + margin: 0; + line-height: 1.5em; + outline: none; + background-color: transparent; + float: right; + font-size: 14px; + margin-left: 10px; + color: $buttonColor; + letter-spacing: $letterSpacing; + font-weight: $buttonFontWeight; + @include transition(background-color .1s ease-out); + + &[disabled] { + color: #666; + cursor: default; + } + + &_full-width { + margin: 0; + width: 100%; + } + + &:hover { + border: 1px solid $buttonHoverBorder; + background-color: $buttonHoverBackground; + @include transition(background-color .1s ease-in); + } + + &:active { + @include box-shadow(inset, 0, 0, 1px, $buttonShadowColor); + } + + &_light { + color: $defaultDarkColor; + background-color: $buttonLightBackground; + border: 1px solid $buttonLightBorder; + + &:hover { + border: 1px solid $buttonLightHoverBorder; + background-color: $buttonLightHoverBackground; + } + } + + &_link { + color: $buttonLinkColor; + background-color: $buttonLinkBackground; + + &:hover { + background-color: $buttonLinkBackground; + } + } + + &_primary { + background-color: $primaryButtonBackground; + border: 1px solid $primaryButtonBackground; + color: $primaryButtonColor; + font-weight: $primaryButtonFontWeight; + + &:hover { + border: 1px solid $primaryButtonHoverBackground; + background-color: $primaryButtonHoverBackground; + } + } + + &_close { + color: $defaultFontColor; + } + &_submit { + color: $linkFontColor; + &:hover { + color: $linkHoverFontColor; + } + } +} \ No newline at end of file diff --git a/css/input-control/_input-control.scss b/css/input-control/_input-control.scss new file mode 100644 index 000000000..5f499e168 --- /dev/null +++ b/css/input-control/_input-control.scss @@ -0,0 +1,49 @@ +.input-control { + padding: 16px 0; + + &__text { + margin: 8px 0; + font-size: 1em + } + + &__label { + font-size: 1em; + font-weight: $labelFontWeight; + } + + &__input { + margin: 8px 0; + + &::selection { + background-color: $defaultDarkSelectionColor; + } + } + + &__em { + color: $inputControlEmColor; + } + + &__hint { + margin-top: 0; + font-size: $hintFontSize; + + span { + vertical-align: middle; + } + } + + &__container { + position: relative; + width: 100%; + @include flex(); + + .button-control { + margin: 9px 0 9px 10px; + } + } + + &__right { + position: absolute; + right: 0; + } +} \ No newline at end of file diff --git a/css/main.scss b/css/main.scss index d1b1e9227..73ef87203 100644 --- a/css/main.scss +++ b/css/main.scss @@ -1,3 +1,9 @@ +/* Functions BEGIN */ + +@import 'functions'; + +/* Functions END */ + /* Variables BEGIN */ @import 'variables'; @@ -10,6 +16,12 @@ /* Mixins END */ +/* Animations BEGIN */ + +@import "animations"; + +/* Animations END */ + /* Fonts BEGIN */ @import 'font'; @@ -17,6 +29,10 @@ /* Fonts END */ +/* Theme BEGIN */ +@import "themes/light"; +/* Theme END */ + /* Modules BEGIN */ @import 'toastr'; @@ -25,8 +41,6 @@ @import 'modals/dialog'; @import 'modals/feedback/feedback'; @import 'videolayout_default'; -@import 'jquery-impromptu'; -@import 'modaldialog'; @import 'notice'; @import 'popup_menu'; @import 'recording'; @@ -43,6 +57,8 @@ @import 'jquery.contextMenu'; @import 'keyboard-shortcuts'; @import 'redirect_page'; - +@import 'input-control/input-control'; +@import 'shortcuts/main'; +@import 'buttons/button-control'; /* Modules END */ \ No newline at end of file diff --git a/css/modals/_dialog.scss b/css/modals/_dialog.scss index 028fa24c7..6a8832f51 100644 --- a/css/modals/_dialog.scss +++ b/css/modals/_dialog.scss @@ -1,53 +1,80 @@ -.dialog{ +.dialog { visibility: visible; height: auto; - p { - color: $defaultDarkColor; + h3 { + color: $auiDialogColor; } - textarea { - background: none; - border: 1px solid $inputBorderColor; - } - .aui-dialog2-content:last-child { - border-bottom-right-radius: 5px; - border-bottom-left-radius: 5px; - } - .aui-dialog2-content:first-child { - border-top-right-radius: 5px; - border-top-left-radius: 5px; - } - .aui-dialog2-footer{ - border-top: 0; - border-radius: 0; - padding-top: 0; - background: none; - border: none; - height: auto; - margin-top: 10px; - } - .aui-button { - height: 28px; - font-size: 12px; - padding: 3px 6px 3px 6px; - border: none; - box-shadow: none; - outline: none; - &_close { - font-weight: 400 !important; - color: $buttonBackground; - background: none !important; + .aui { - :hover { - text-decoration: underline; + &-icon { + color: $auiDialogColor; + + &-small { + width: 14px; + height: 14px; } } - &_submit { - font-weight: 700 !important; - color: $defaultColor; - background: $buttonBackground; - border-radius: 3px; + + &-iconfont-close-dialog { + cursor: pointer; + right: 20px; + position: absolute; + top: -49px; + } + + &-dialog2 { + &-header, &-footer { + background-color: $auiDialogBg; + border: none; + } + + &-header { + height: em(58, 12); + border-bottom: 1px solid $auiBorderColor; + + h2 { + font-size: em(20, 12); + font-weight: $dialogTitleFontWeight; + letter-spacing: $titleLetterSpacing; + color: $auiDialogColor; + } + + &-main { + padding-right: 0; + } + } + + &-footer { + border-top: 1px solid $auiBorderColor; + } + + &-content { + font-size: em(14, 12); + min-height: 0; + background-color: $auiDialogContentBg; + color: $auiDialogColor; + + p,span, h3 { + font-weight: $labelFontWeight; + letter-spacing: $letterSpacing; + } + + &:last-child { + border-bottom-right-radius: 5px; + border-bottom-left-radius: 5px; + } + + &:first-child { + border-top-right-radius: 5px; + border-top-left-radius: 5px; + } + } } } -} \ No newline at end of file + + .input-control:not(:last-child) { + border-bottom: 1px solid $auiBorderColor; + } +} diff --git a/css/modals/feedback/_feedback.scss b/css/modals/feedback/_feedback.scss index 7de96adeb..4fcc12346 100644 --- a/css/modals/feedback/_feedback.scss +++ b/css/modals/feedback/_feedback.scss @@ -45,64 +45,60 @@ animation-timing-function: ease-in-out } -.feedback { - h2 { - font-weight: 400; - font-size: 24px; - line-height: 1.2; - } - p { - font-weight: 400; - font-size: 14px; - } - - &__content { - text-align: center; - - textarea { - text-align: left; - min-height: 80px; - width: 100%; - } - } - &__footer { - - &:hover { - color: #287ade; - outline: 0; - } - } - &__rating { - line-height: 1.2; - padding: 20px 0; - - p { - margin: 10px 0 0; +.feedback.aui-dialog2{ + .aui-dialog2{ + &-header { + background-color: $auiDialogContentBg; + border-bottom-color: transparent; + padding-top: 30px; + h2 { + text-align: center; + } } - .star-label { - font-size: 16px; - color: $rateStarLabelColor; - } + &-content { + text-align: center; + padding: 10px 40px 20px 40px; - .star-btn { - color: $rateStarDefault; - font-size: 36px; - position: relative; - cursor: pointer; - outline: none; - text-decoration: none; - @include transition(all .2s ease); + .rating { + line-height: 1.2; + text-align: center; + margin-top: 10px; - &.starHover, - &.active, - &:hover { - color: $rateStarActivity; - > i:before { - content: "\e90a"; + .star-label { + height: 16px; + font-size: 14px; } - }; + .star-btn { + color: $rateStarDefault; + font-size: 36px; + position: relative; + cursor: pointer; + outline: none; + text-decoration: none; + @include transition(all .2s ease); + &.starHover, + &.active, + &:hover { + color: $rateStarActivity; + }; + + } + } + + .details { + padding-left: 60px; + padding-right: 60px; + margin-top: 20px; + textarea { + min-height: 100px; + } + } + } + &-footer { + background-color: $auiDialogContentBg; + border-top-color: transparent; } } -} +} \ No newline at end of file diff --git a/css/shortcuts/_main.scss b/css/shortcuts/_main.scss new file mode 100644 index 000000000..065785b30 --- /dev/null +++ b/css/shortcuts/_main.scss @@ -0,0 +1,4 @@ +/* Import shortcuts blocks */ + +@import 'regular-key'; +@import 'shortcuts-list'; \ No newline at end of file diff --git a/css/shortcuts/_regular-key.scss b/css/shortcuts/_regular-key.scss new file mode 100644 index 000000000..9215e372c --- /dev/null +++ b/css/shortcuts/_regular-key.scss @@ -0,0 +1,11 @@ +.regular-key { + display: table-cell; + width: 25px; + height: 20px; + padding: 0; + text-align: center; + vertical-align: middle; + font-family: $baseFontFamily; + color: $defaultDarkColor; + font-size: 12px; +} \ No newline at end of file diff --git a/css/shortcuts/_shortcuts-list.scss b/css/shortcuts/_shortcuts-list.scss new file mode 100644 index 000000000..7e32ed4e2 --- /dev/null +++ b/css/shortcuts/_shortcuts-list.scss @@ -0,0 +1,12 @@ +.shortcuts-list { + padding: 0; + + &__description { + margin-left: em(16, 14); + vertical-align: top; + } + + &__item { + margin-bottom: em(7, 14); + } +} \ No newline at end of file diff --git a/css/themes/_light.scss b/css/themes/_light.scss new file mode 100644 index 000000000..672018aca --- /dev/null +++ b/css/themes/_light.scss @@ -0,0 +1,46 @@ +/** +* Buttons +*/ +$buttonBackground: #f5f5f5; +$buttonHoverBackground: #e9e9e9; +$buttonBorder: #ccc; +$buttonHoverBorder: #999; +$buttonColor: #333; + +$buttonLightBackground: #f5f5f5; +$buttonLightHoverBackground: #e9e9e9; +$buttonLightBorder: #ccc; +$buttonLightHoverBorder: #999; + +$buttonLinkBackground: transparent; +$buttonLinkColor: #0090e8; + +$primaryButtonBackground: #3572b0; +$primaryButtonHoverBackground: #2a67a5; +$primaryButtonColor: #fff; +$primaryButtonFontWeight: 400; + +$buttonShadowColor: #192d4f; + +/** + * Dialog colors + **/ +$auiDialogColor: #333; +$auiDialogBg: #f5f5f5; +$auiDialogContentBg: #fff; +$auiBorderColor: #ccc; +$dialogTitleFontWeight: 400; + +// Main controls +$inputBackground: #fff; +$inputBorderColor: #ccc; +$inputColor: #333; +$defaultDarkSelectionColor: #ccc; +$titleLetterSpacing: 0; +$letterSpacing: 0; +$buttonFontWeight: 400; +$labelFontWeight: 400; +$hintFontSize: em(13, 14); +$linkFontColor: #3572b0; +$linkHoverFontColor: darken(#3572b0, 10%); +$dropdownColor: #333; \ No newline at end of file diff --git a/index.html b/index.html index 66e070f9d..b7c6bc1f8 100644 --- a/index.html +++ b/index.html @@ -132,7 +132,6 @@ -