Skip to content
This repository was archived by the owner on Jan 25, 2022. It is now read-only.

Commit ce9b89d

Browse files
authoredMar 1, 2021
Chao Filtros (#113)
* chatsservice * compose changes * docker improvement * cambios review PR * working on profile requests * chats mock * messages parsing ok * senchats mock * ne home and search design * send message from profile * fixed start conver bug * auxilio, me desmayo * load more posts on scroll * search request * load>get * new post request ready * filter search ready to make (your booty shake) * signUp and profileEdit * FiltersScreen * expo picker * login && post request working * OK now it´s working * discover working falta filtrar * learning posts * validación de campos menuda muerte * rm userURL * muchos servicios * kafka loggin * log4j2.cml * deleted .jar * coses * I Love BASE64 * likes working * ta to pagaooo * loadNextPosts * desc filter * dai pa allaaaa * spinners * loading animations * post refresh * translation and textToSpeech * senMessage conversation that already exists * edit chao * la maldición de cueva - parte 2 * sdf * Add files via upload * Delete expo.png * Rename docs/imsg/sdf to docs/imgs * Delete imgs * Create asd * Add files via upload * Delete asd * Add files via upload * Update 0307-Cliente-movil.md * Update 0307-Cliente-movil.md * Update 0307-Cliente-movil.md * Update README.md * Update README.md * Update 0307-Cliente-movil.md * Update README.md * Update 0303-Servicio-de-chats.md * Update 0307-Cliente-movil.md * Update README.md * fuera filtros * wrong combination * translation and textotspeech only with non native languajes
1 parent b5fa846 commit ce9b89d

33 files changed

+204
-132
lines changed
 

‎package-lock.json

+3
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

‎src/mobileclient/App.js

+3
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,9 @@ export const AppContext = React.createContext();
88

99
export default function App() {
1010

11+
console.disableYellowBox = true;
12+
//LogBox.ignoreAllLogs(true)
13+
1114
const [user,setUser] = useState(null); //Poner a null
1215
const [token,setToken] = useState(null);
1316

‎src/mobileclient/app.json

+1
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@
2020
"supportsTablet": true
2121
},
2222
"android": {
23+
"package":"com.easidiomas.mobileclient",
2324
"adaptiveIcon": {
2425
"foregroundImage": "./assets/adaptive-icon.png",
2526
"backgroundColor": "#FFFFFF"

‎src/mobileclient/screens/ChatsScreen.js

-1
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,6 @@ export default function ChatsScreen({route,navigation}) {
2222

2323
let newChats = [];
2424
for(let chat in response){
25-
console.log(response[chat])
2625
let user1 = await getUser(response[chat].user1)
2726
let user2 = await getUser(response[chat].user2)
2827
if(context.user.id == user1.id)

‎src/mobileclient/screens/DiscoverScreen.js

+36-19
Original file line numberDiff line numberDiff line change
@@ -2,35 +2,27 @@ import React, { useEffect, useState, useContext } from 'react';
22
import {AppContext} from '../App';
33
import { StyleSheet, Text, View, FlatList, ActivityIndicator } from 'react-native';
44
import Chat from './items/Chat';
5-
import { DiscoverContext } from './navigation/DiscoverStackNavigator';
65
import { nativeViewProps } from 'react-native-gesture-handler/dist/src/handlers/NativeViewGestureHandler';
76

87
export default function DiscoverScreen(props) {
98

109
const appContex = useContext(AppContext);
11-
const context = useContext(DiscoverContext);
1210

1311
const {REQUEST_URI} = appContex.CONFIG;
1412

15-
const {navigation,parentNavigation} = props;
13+
const {navigation,parentNavigation,getFilters,native,setNative,learning1,setLearning1,learning2,setLearning2,minAge,maxAge,setMinAge,setMaxAge} = props;
14+
const {route} = props;
1615

1716
const [results, setResults] = useState([]);
1817
const [links,setLinks] = useState([]);
1918
const [loading,setLoading] = useState(false);
19+
const [first,setFirst] = useState(true);
20+
const [filters,setFilters] = useState(null);
2021

21-
const loadResults = async function(url,loadAnimation = true){
22-
if(loadAnimation)
22+
const loadResults = async function(url){
23+
if(first)
2324
setLoading(true)
24-
/*
25-
let filt = '';
26-
if(props.route?.params?.filter){
27-
console.log('entra')
28-
filt=context.filters;
29-
}else{
30-
console.log('no entra')
31-
}*/
32-
33-
25+
3426
let response = await (await fetch(REQUEST_URI+url,{
3527
method: 'GET',
3628
headers: {
@@ -39,33 +31,58 @@ export default function DiscoverScreen(props) {
3931
'token':appContex.token
4032
}
4133
})).json();
34+
35+
36+
let newUsers = [];
37+
for(let usr in response.users){
38+
console.log('TODOOOOOO')
39+
console.log(response.users[usr].role)
40+
if(response.users[usr].role!=1){
41+
newUsers.push(response.users[usr])
42+
}
43+
}
4244
//setResults([...results,response.users]) -> I´m not sure why this is not working...
4345

4446
// TODO
4547
// SACAR EL USUARIO QUE ES EL QUE ESTÁ LOGUEADO
4648

47-
setResults(results.concat(response?.users))
49+
setResults(results.concat(newUsers))
4850
setLinks(response.links)
49-
if(loadAnimation)
51+
if(first)
5052
setLoading(false)
5153
}
5254

55+
5356
const loadNext = function(){
5457
if(links.next)
55-
loadResults(links.next,false)
58+
loadResults(links.next)
5659
}
5760

61+
62+
useEffect(() => {
63+
const unsubscribe = navigation.addListener('focus', () => {
64+
console.log(route?.params?.filters)
65+
setFilters(route?.params?.filters);
66+
loadResults('/users');
67+
});
68+
69+
return unsubscribe;
70+
}, [route,navigation]);
71+
72+
5873
useEffect(() => {
5974
const unsubscribe = navigation.addListener('focus', () => {
6075
loadResults('/users');
76+
setFirst(false);
6177
});
6278

6379
return unsubscribe;
64-
}, [navigation]);
80+
});
6581

6682

6783
useEffect(()=>{
6884
loadResults('/users');
85+
setFirst(false);
6986
},[])
7087

7188
return (

‎src/mobileclient/screens/HomeScreen.js

+1-2
Original file line numberDiff line numberDiff line change
@@ -46,8 +46,7 @@ export default function Home(props) {
4646
//setPosts([...posts,newPosts]) -> I´m not sure why this is not working...
4747
setPosts(posts.concat(newPosts))
4848
setLinks(response.links)
49-
if(loadAnimation)
50-
setLoading(false)
49+
setLoading(false)
5150
}
5251

5352
const loadNext = function(){

‎src/mobileclient/screens/ProfileScreen.js

+2-4
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,6 @@ export default function ProfileScreen(props) {
3939
let chatId;
4040
for(let chat in chats){
4141
if(chats[chat].user1 == id || chats[chat].user2== id){
42-
console.log('EXISTE')
4342
alreadyExist = true;
4443
chatId=chats[chat].id;
4544
}
@@ -60,7 +59,6 @@ export default function ProfileScreen(props) {
6059
let data = await response.json();
6160
chatId = data.id;
6261
}
63-
console.log(chatId)
6462
parentNavigation.navigate('Chats',{startChat:true,user:props.user,chatId:chatId});
6563
}
6664

@@ -75,11 +73,11 @@ export default function ProfileScreen(props) {
7573
<View style={styles.languajesContainer}>
7674
<View style={styles.learningContainer}>
7775
<Text style={styles.learningLabel}>Native</Text>
78-
<Text style={styles.learningLabel}>{speaks.toUpperCase()}</Text>
76+
<Text style={styles.learningLabel}>{speaks?.toUpperCase()}</Text>
7977
</View>
8078
<View style={styles.learningContainer}>
8179
<Text style={styles.learningLabel}>Learning</Text>
82-
<Text style={styles.learningLabel}>{learning[0].toUpperCase()+'-'+learning[1].toUpperCase()}</Text>
80+
<Text style={styles.learningLabel}>{learning[0]?.toUpperCase()+'-'+learning[1]?.toUpperCase()}</Text>
8381
</View>
8482
</View>
8583
{

‎src/mobileclient/screens/auth/LoginScreen.js

+8-3
Original file line numberDiff line numberDiff line change
@@ -6,11 +6,12 @@ export default function LoginScreen({navigation}){
66

77
const context = useContext(AppContext);
88
const {REQUEST_URI} = context.CONFIG;
9-
const [username,setUsername] = useState('mistermboy');
9+
const [username,setUsername] = useState('');
1010
const [usernameView,setUsernameView] = useState(view);
11-
const [password,setPassword] = useState('12345');
11+
const [password,setPassword] = useState('');
1212
const [passwordView,setPasswordView] = useState(view);
1313
const [loading,setLoading] = useState(false);
14+
const [errors,setErrors] = useState('');
1415

1516
const signUp = function(){
1617
navigation.navigate("Sign Up",{errors:''});
@@ -33,14 +34,14 @@ export default function LoginScreen({navigation}){
3334
body: JSON.stringify({username:username,password:password})
3435
})).json();
3536

36-
console.log(response)
3737

3838
let tokenPermission = response.tokenPermissions_;
3939
let token = response.tokenGenerated_
4040
// TODO
4141
// manejar logins failed
4242
if(tokenPermission== -1){
4343
console.log('Fail Login')
44+
setErrors('Wrong combination')
4445
setLoading(false)
4546
return
4647
}
@@ -102,6 +103,7 @@ export default function LoginScreen({navigation}){
102103
placeholderTextColor="#E1E8ED"
103104
/>
104105
</View>
106+
<Text style={styles.errors}>{errors}</Text>
105107
{loading ?
106108
<View style={styles.btnsContainer}>
107109
<ActivityIndicator size="large" color="#fff"/>
@@ -181,6 +183,9 @@ const styles = StyleSheet.create({
181183
justifyContent:"center",
182184
marginTop:40,
183185
marginBottom:10
186+
},
187+
errors:{
188+
color:'red'
184189
}
185190
});
186191

‎src/mobileclient/screens/auth/SignUpScreen.js

+2-2
Original file line numberDiff line numberDiff line change
@@ -5,9 +5,9 @@ import SignUpLanguajePicker from './SignUpLanguajePicker';
55
export default function SignUpScreen({route,navigation}){
66

77
const {errors} = route.params;
8-
const [username,setUsername] = useState('asd');
8+
const [username,setUsername] = useState('');
99
const [usernameView,setUsernameView] = useState(view);
10-
const [password,setPassword] = useState('asd');
10+
const [password,setPassword] = useState('');
1111
const [passwordView,setPasswordView] = useState(view);
1212

1313
const next = function(){

‎src/mobileclient/screens/chat/RoomScreen.js

-2
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,6 @@ export default function RoomScreen(props) {
1313
const [messages, setMessages] = useState([]);
1414

1515
const getMessages = async function(){
16-
console.log(props.route)
1716
let response = await (await fetch(REQUEST_URI+'/chats/'+chatId+'/messages',{
1817
method: 'GET',
1918
headers: {
@@ -48,7 +47,6 @@ export default function RoomScreen(props) {
4847
}
4948

5049
}
51-
console.log(newMessages)
5250
setMessages(newMessages.reverse());
5351
}
5452

‎src/mobileclient/screens/discover/FiltersScreen.js

+2-2
Original file line numberDiff line numberDiff line change
@@ -4,9 +4,9 @@ import CustomPickerPodal from './CustomPickerModal';
44
import {DiscoverContext} from '../navigation/DiscoverStackNavigator';
55
import Ionicons from 'react-native-vector-icons/Ionicons';
66

7-
export default function FiltersScreen() {
7+
export default function FiltersScreen(props) {
88

9-
const {native,setNative,learning1,setLearning1,learning2,setLearning2,minAge,maxAge,setMinAge,setMaxAge} = useContext(DiscoverContext);
9+
const {native,setNative,learning1,setLearning1,learning2,setLearning2,minAge,maxAge,setMinAge,setMaxAge} = props;
1010

1111
const decrementMinAge = function(){
1212
if(minAge>0)
+16
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
2+
arabe - ar
3+
aleman - d
4+
frances -fr
5+
italiano - it
6+
holandes -nl
7+
polaco - pl
8+
portugues - pt
9+
turco - tr
10+
ruso - ru
11+
coreano - ko
12+
rumano -ro
13+
filipino - th
14+
danes - da
15+
indonesio - id
16+
suagileño - sw
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,5 @@
11
[
2-
{
3-
"Name": "Chinese",
4-
"Value": "中国人",
5-
"Code": "cn",
6-
"Id": 2
7-
},
2+
83
{
94
"Name": "Spanish",
105
"Value": "Spanish",
@@ -15,6 +10,24 @@
1510
"Name": "English",
1611
"Value": "English",
1712
"Code": "en",
13+
"Id": 2
14+
},
15+
{
16+
"Name": "Chinese",
17+
"Value": "中国人",
18+
"Code": "cn",
1819
"Id": 3
20+
},
21+
{
22+
"Name": "Korean",
23+
"Value": "한국어",
24+
"Code": "cASDDDDDDDDDDDDn",
25+
"Id": 4
1926
}
20-
]
27+
28+
]
29+
30+
31+
32+
33+

‎src/mobileclient/screens/items/Post.js

+25-9
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,7 @@ export default function Post(props){
2929
const [translationLabel,setTranslationLabel] = useState('Translate');
3030
const [player,setPlayer] = useState(new Audio.Sound());
3131
const [isPlaying,setIsPlaying] = useState(false);
32+
const [showBtns,setShowBtns] = useState(context.user.speaks == language ? false:true);
3233

3334
const postPressed = function(pressed = false){
3435
setTouched(pressed)
@@ -61,8 +62,6 @@ export default function Post(props){
6162
},
6263
body: payload
6364
});
64-
65-
console.log(response.status)
6665
}
6766

6867
const textToSpeech = async function(){
@@ -81,7 +80,6 @@ export default function Post(props){
8180
body: payload
8281
});
8382

84-
console.log(response.status)
8583
const audio = (await response.json()).result;
8684
if(!isPlaying){
8785
let uri = "data:audio/mpeg;base64,"+audio;
@@ -98,6 +96,7 @@ export default function Post(props){
9896

9997
const translate = async function(){
10098

99+
101100
let payload = JSON.stringify({
102101
sourceLanguage:language,
103102
targetLanguage:context.user.speaks,
@@ -165,12 +164,29 @@ export default function Post(props){
165164
}
166165
<Text style={[styles.likeButtonIcon, {color: liked ? "rgb(224, 36, 94)" : "rgb(136, 153, 166)",fontWeight: liked ? "bold" : "300",}]}>{likes}</Text>
167166
</TouchableOpacity>
168-
<TouchableOpacity onPress={()=> textToSpeech()}>
169-
<Text style={styles.textAction}>Text to Speech</Text>
170-
</TouchableOpacity>
171-
<TouchableOpacity onPress={()=> translate()}>
172-
<Text style={styles.textAction}>{translationLabel}</Text>
173-
</TouchableOpacity>
167+
168+
{
169+
showBtns ?
170+
171+
<TouchableOpacity onPress={()=> textToSpeech()}>
172+
<Text style={styles.textAction}>Text to Speech</Text>
173+
</TouchableOpacity>
174+
:
175+
<View></View>
176+
}
177+
178+
{
179+
showBtns ?
180+
181+
<TouchableOpacity onPress={()=> translate()}>
182+
<Text style={styles.textAction}>Translate</Text>
183+
</TouchableOpacity>
184+
:
185+
<View></View>
186+
}
187+
188+
189+
174190

175191
</View>
176192

‎src/mobileclient/screens/navigation/DiscoverStackNavigator.js

+48-40
Original file line numberDiff line numberDiff line change
@@ -7,41 +7,30 @@ import Ionicons from 'react-native-vector-icons/Ionicons'
77
import FiltersScreen from '../discover/FiltersScreen';
88
import DiscoverScreen from '../DiscoverScreen';
99
import data from '../discover/languajes.json';
10-
import { AppContext } from '../../App';
1110

12-
13-
export const DiscoverContext = React.createContext();
1411
export const navigationRef = React.createRef();
1512

1613
export function navigate(name, params) {
1714
navigationRef.current?.navigate(name, params);
1815
}
1916

2017

21-
2218
export default function DiscoverStackNavigator({navigation}) {
2319

24-
const [native,setNative] = useState(data[0]);
25-
const [learning1,setLearning1] = useState(data[1]);
26-
const [learning2,setLearning2] = useState(data[2]);
20+
const [native,setNative] = useState('');
21+
const [learning1,setLearning1] = useState('');
22+
const [learning2,setLearning2] = useState('');
2723
const [minAge,setMinAge] = useState(0);
2824
const [maxAge,setMaxAge] = useState(100);
2925

30-
const Stack = createStackNavigator();
3126

32-
function FiltersBtn() {
33-
return (
34-
<TouchableOpacity onPress={() => navigate('Discover Options')}>
35-
<Ionicons name={'settings-outline'} size={20} color={'white'} style={styles.configBtn}/>
36-
</TouchableOpacity>
37-
);
38-
}
27+
const Stack = createStackNavigator();
3928

40-
function ApplyFiltersBtn() {
4129

4230

31+
function ApplyFiltersBtn(props) {
4332
const apply = function(){
44-
navigate('Discover',{filter:true})
33+
navigate('Discover',{filters:getFilters()})
4534
}
4635
return (
4736
<TouchableOpacity onPress={() => apply()} style={styles.applyFiltersBtn}>
@@ -52,24 +41,24 @@ export default function DiscoverStackNavigator({navigation}) {
5241

5342

5443
const getFilters = function(){
55-
return '?speaks='+native.Code.toLowerCase()+'&wantsToLearn='+learning1.Code.toLowerCase()+','+learning2.Code.toLowerCase();
44+
let nativeFilter = native?.Code?.toUpperCase();
45+
let learning1Filter = learning1?.Code?.toUpperCase();
46+
let learning2Filter = learning2?.Code?.toUpperCase();
47+
if(!nativeFilter)
48+
nativeFilter = '';
49+
if(!learning1Filter)
50+
learning1Filter = '';
51+
if(!learning2Filter)
52+
learning2Filter = '';
53+
54+
//TODO
55+
//AGEEEEE
56+
57+
return '?speaks='+nativeFilter+'&wantsToLearn='+learning1Filter+','+learning2Filter;
5658
}
5759

5860

5961
return (
60-
<DiscoverContext.Provider value={
61-
{
62-
native:native,
63-
learning1,learning1,
64-
learning2:learning2,
65-
minAge:minAge,
66-
maxAge:maxAge,
67-
filters: getFilters(),
68-
setNative:setNative,
69-
setLearning1:setLearning1,
70-
setLearning2:setLearning2,
71-
setMinAge:setMinAge,
72-
setMaxAge:setMaxAge}}>
7362
<View style={styles.container}>
7463
<NavigationContainer independent initialRouteName="Discover" ref={navigationRef}>
7564
<Stack.Navigator screenOptions={{
@@ -84,23 +73,42 @@ export default function DiscoverStackNavigator({navigation}) {
8473
fontWeight: 'bold',
8574
}
8675
}}>
87-
<Stack.Screen name="Discover"options={{
76+
<Stack.Screen name="Discover">
77+
{props=> <DiscoverScreen {...props} parentNavigation={navigation}
78+
native={native}
79+
setNative={setNative}
80+
learning1={learning1}
81+
setLearning1={setLearning1}
82+
learning2={learning2}
83+
setLearning2={setLearning2}
84+
minAge={minAge}
85+
maxAge={maxAge}
86+
setMinAge={setMinAge}
87+
setMaxAge={setMaxAge}
88+
getFilters={getFilters}/>
89+
}
90+
</Stack.Screen>
91+
<Stack.Screen name="Discover Options" options={{
8892
headerRight: () => (
89-
<FiltersBtn/>
93+
<ApplyFiltersBtn />
9094
)
9195
}}>
92-
{props=> <DiscoverScreen {...props} parentNavigation={navigation}/>
96+
{props=> <FiltersScreen {...props}
97+
native={native}
98+
setNative={setNative}
99+
learning1={learning1}
100+
setLearning1={setLearning1}
101+
learning2={learning2}
102+
setLearning2={setLearning2}
103+
minAge={minAge}
104+
maxAge={maxAge}
105+
setMinAge={setMinAge}
106+
setMaxAge={setMaxAge} />
93107
}
94108
</Stack.Screen>
95-
<Stack.Screen name="Discover Options" component={FiltersScreen} options={{
96-
headerRight: () => (
97-
<ApplyFiltersBtn/>
98-
)
99-
}}/>
100109
</Stack.Navigator>
101110
</NavigationContainer>
102111
</View>
103-
</DiscoverContext.Provider>
104112
);
105113
}
106114

‎src/webclient/Views/Statistics/Index.cshtml

+1-4
Original file line numberDiff line numberDiff line change
@@ -10,10 +10,7 @@
1010
<h2>Users registered</h2>
1111
<p>Total: @Model.RegisteredUsers.Total</p>
1212
<h3>Languages being learned</h3>
13-
@foreach (var entry in Model.RegisteredUsers.learning.Entry)
14-
{
15-
<p>@entry.Key : @entry.Value</p>
16-
}
13+
1714

1815
<h3>Native languages</h3>
1916
@foreach (var entry in Model.RegisteredUsers.nnative.Entry)

‎src/webclient/WebClient.csproj

-1
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,6 @@
1414
<Folder Include="Util\" />
1515
<Folder Include="Views\Posts\" />
1616
<Folder Include="Views\Users\" />
17-
<Folder Include="Views\Statistics\" />
1817
</ItemGroup>
1918
<ItemGroup>
2019
<PackageReference Include="RestSharp" Version="106.11.7" />

‎src/webclient/wwwroot/lib/bootstrap/dist/js/bootstrap.bundle.js

+6-6
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

‎src/webclient/wwwroot/lib/bootstrap/dist/js/bootstrap.bundle.js.map

+1-1
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

‎src/webclient/wwwroot/lib/bootstrap/dist/js/bootstrap.bundle.min.js

+1-1
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

‎src/webclient/wwwroot/lib/bootstrap/dist/js/bootstrap.bundle.min.js.map

+1-1
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

‎src/webclient/wwwroot/lib/bootstrap/dist/js/bootstrap.js

+5-5
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

‎src/webclient/wwwroot/lib/bootstrap/dist/js/bootstrap.js.map

+1-1
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

‎src/webclient/wwwroot/lib/bootstrap/dist/js/bootstrap.min.js

+1-1
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

‎src/webclient/wwwroot/lib/bootstrap/dist/js/bootstrap.min.js.map

+1-1
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

‎src/webclient/wwwroot/lib/jquery-validation-unobtrusive/jquery.validate.unobtrusive.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -380,7 +380,7 @@
380380
});
381381
adapters.add("required", function (options) {
382382
// jQuery Validate equates "required" with "mandatory" for checkbox elements
383-
if (options.element.tagName.toUpperCase() !== "INPUT" || options.element.type.toUpperCase() !== "CHECKBOX") {
383+
if (options.element.tagName?.toUpperCase() !== "INPUT" || options.element.type?.toUpperCase() !== "CHECKBOX") {
384384
setValidationValues(options, "required", true);
385385
}
386386
});

‎src/webclient/wwwroot/lib/jquery-validation-unobtrusive/jquery.validate.unobtrusive.min.js

+1-1
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

‎src/webclient/wwwroot/lib/jquery-validation/dist/additional-methods.js

+6-6
Original file line numberDiff line numberDiff line change
@@ -138,7 +138,7 @@ $.validator.addMethod( "bankorgiroaccountNL", function( value, element ) {
138138
* - Last 3 characters - branch code, optional (shall not start with 'X' except in case of 'XXX' for primary office) (letters and digits)
139139
*/
140140
$.validator.addMethod( "bic", function( value, element ) {
141-
return this.optional( element ) || /^([A-Z]{6}[A-Z2-9][A-NP-Z1-9])(X{3}|[A-WY-Z0-9][A-Z0-9]{2})?$/.test( value.toUpperCase() );
141+
return this.optional( element ) || /^([A-Z]{6}[A-Z2-9][A-NP-Z1-9])(X{3}|[A-WY-Z0-9][A-Z0-9]{2})?$/.test( value?.toUpperCase() );
142142
}, "Please specify a valid BIC code" );
143143

144144
/*
@@ -545,7 +545,7 @@ $.validator.addMethod( "iban", function( value, element ) {
545545
}
546546

547547
// Remove spaces and to upper case
548-
var iban = value.replace( / /g, "" ).toUpperCase(),
548+
var iban = value.replace( / /g, "" )?.toUpperCase(),
549549
ibancheckdigits = "",
550550
leadingZeroes = true,
551551
cRest = "",
@@ -727,10 +727,10 @@ $.validator.addMethod( "nieES", function( value, element ) {
727727

728728
var nieRegEx = new RegExp( /^[MXYZ]{1}[0-9]{7,8}[TRWAGMYFPDXBNJZSQVHLCKET]{1}$/gi );
729729
var validChars = "TRWAGMYFPDXBNJZSQVHLCKET",
730-
letter = value.substr( value.length - 1 ).toUpperCase(),
730+
letter = value.substr( value.length - 1 )?.toUpperCase(),
731731
number;
732732

733-
value = value.toString().toUpperCase();
733+
value = value.toString()?.toUpperCase();
734734

735735
// Quick format test
736736
if ( value.length > 10 || value.length < 9 || !nieRegEx.test( value ) ) {
@@ -760,7 +760,7 @@ $.validator.addMethod( "nifES", function( value, element ) {
760760
return true;
761761
}
762762

763-
value = value.toUpperCase();
763+
value = value?.toUpperCase();
764764

765765
// Basic format test
766766
if ( !value.match( "((^[A-Z]{1}[0-9]{7}[A-Z0-9]{1}$|^[T]{1}[A-Z0-9]{8}$)|^[0-9]{8}[A-Z]{1}$)" ) ) {
@@ -1125,7 +1125,7 @@ $.validator.addMethod( "vinUS", function( v ) {
11251125
d *= f;
11261126
} else {
11271127
for ( n = 0; n < LL.length; n++ ) {
1128-
if ( d.toUpperCase() === LL[ n ] ) {
1128+
if ( d?.toUpperCase() === LL[ n ] ) {
11291129
d = VL[ n ];
11301130
d *= f;
11311131
if ( isNaN( cdv ) && n === 8 ) {

‎src/webclient/wwwroot/lib/jquery-validation/dist/additional-methods.min.js

+1-1
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

‎src/webclient/wwwroot/lib/jquery-validation/dist/jquery.validate.js

+2-2
Original file line numberDiff line numberDiff line change
@@ -817,7 +817,7 @@ $.extend( $.validator, {
817817
// specified in the element's HTML5 data attribute
818818
// return the generic message if present and no method specific message is present
819819
customDataMessage: function( element, method ) {
820-
return $( element ).data( "msg" + method.charAt( 0 ).toUpperCase() +
820+
return $( element ).data( "msg" + method.charAt( 0 )?.toUpperCase() +
821821
method.substring( 1 ).toLowerCase() ) || $( element ).data( "msg" );
822822
},
823823

@@ -1245,7 +1245,7 @@ $.extend( $.validator, {
12451245
method, value;
12461246

12471247
for ( method in $.validator.methods ) {
1248-
value = $element.data( "rule" + method.charAt( 0 ).toUpperCase() + method.substring( 1 ).toLowerCase() );
1248+
value = $element.data( "rule" + method.charAt( 0 )?.toUpperCase() + method.substring( 1 ).toLowerCase() );
12491249
this.normalizeAttributeRule( rules, type, method, value );
12501250
}
12511251
return rules;

‎src/webclient/wwwroot/lib/jquery-validation/dist/jquery.validate.min.js

+1-1
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

‎src/webclient/wwwroot/lib/jquery/dist/jquery.js

+6-6
Original file line numberDiff line numberDiff line change
@@ -4206,7 +4206,7 @@ var rmsPrefix = /^-ms-/,
42064206

42074207
// Used by camelCase as callback to replace()
42084208
function fcamelCase( _all, letter ) {
4209-
return letter.toUpperCase();
4209+
return letter?.toUpperCase();
42104210
}
42114211

42124212
// Convert dashed to camelCase; used by the css and data modules
@@ -6649,7 +6649,7 @@ var cssPrefixes = [ "Webkit", "Moz", "ms" ],
66496649
function vendorPropName( name ) {
66506650

66516651
// Check for vendor prefixed names
6652-
var capName = name[ 0 ].toUpperCase() + name.slice( 1 ),
6652+
var capName = name[ 0 ]?.toUpperCase() + name.slice( 1 ),
66536653
i = cssPrefixes.length;
66546654

66556655
while ( i-- ) {
@@ -6753,7 +6753,7 @@ function boxModelAdjustment( elem, dimension, box, isBorderBox, styles, computed
67536753
// offsetWidth/offsetHeight is a rounded sum of content, padding, scroll gutter, and border
67546754
// Assuming integer scroll gutter, subtract the rest and round down
67556755
delta += Math.max( 0, Math.ceil(
6756-
elem[ "offset" + dimension[ 0 ].toUpperCase() + dimension.slice( 1 ) ] -
6756+
elem[ "offset" + dimension[ 0 ]?.toUpperCase() + dimension.slice( 1 ) ] -
67576757
computedVal -
67586758
delta -
67596759
extra -
@@ -6780,7 +6780,7 @@ function getWidthOrHeight( elem, dimension, extra ) {
67806780
valueIsBorderBox = isBorderBox,
67816781

67826782
val = curCSS( elem, dimension, styles ),
6783-
offsetProp = "offset" + dimension[ 0 ].toUpperCase() + dimension.slice( 1 );
6783+
offsetProp = "offset" + dimension[ 0 ]?.toUpperCase() + dimension.slice( 1 );
67846784

67856785
// Support: Firefox <=54
67866786
// Return a confounding non-pixel value or feign ignorance, as appropriate.
@@ -7056,7 +7056,7 @@ jQuery.each( [ "height", "width" ], function( _i, dimension ) {
70567056
// faking a content-box to get border and padding (gh-3699)
70577057
if ( isBorderBox && scrollboxSizeBuggy ) {
70587058
subtract -= Math.ceil(
7059-
elem[ "offset" + dimension[ 0 ].toUpperCase() + dimension.slice( 1 ) ] -
7059+
elem[ "offset" + dimension[ 0 ]?.toUpperCase() + dimension.slice( 1 ) ] -
70607060
parseFloat( styles[ dimension ] ) -
70617061
boxModelAdjustment( elem, dimension, "border", false, styles ) -
70627062
0.5
@@ -9566,7 +9566,7 @@ jQuery.extend( {
95669566
}
95679567

95689568
// Uppercase the type
9569-
s.type = s.type.toUpperCase();
9569+
s.type = s.type?.toUpperCase();
95709570

95719571
// Determine if request has content
95729572
s.hasContent = !rnoContent.test( s.type );

‎src/webclient/wwwroot/lib/jquery/dist/jquery.min.js

+1-1
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)
This repository has been archived.