Compare commits

...

18 Commits

Author SHA1 Message Date
Valentin 15bea6826f Remove unneeded dependency 2020-05-08 20:06:17 +02:00
Letícia Camara 84d64b3194 Merge branch 'master' into mx 2019-01-24 00:19:50 -02:00
Letícia Camara 3489f29089 Update webservice url 2019-01-24 00:18:31 -02:00
Letícia Camara 2a5618a999 Fix dependencies problem 2019-01-23 22:21:59 -02:00
Letícia Camara 19d0223959 Fix dependencies problem 2019-01-23 22:20:16 -02:00
Letícia Camara bd40a19942 Fix filtered data to external update query event 2019-01-21 00:09:52 -02:00
Letícia Camara 4df858b4f0 Ambs responsive table 2019-01-16 22:43:10 -02:00
Letícia Camara deb9c2eb4f Merchants responsive table 2019-01-16 22:26:34 -02:00
Letícia Camara 65451e1cca The text in the name and address cells to wrap to next line 2019-01-16 21:28:38 -02:00
Letícia Camara c5576bb57b Add sort logic after each search event 2019-01-16 20:00:44 -02:00
Letícia Camara 775ed18e38 Merge branch 'master' into mx 2018-12-21 04:55:26 -02:00
Letícia Camara f325cd3478 Merge branch 'master' into mx 2018-12-05 18:52:48 -02:00
Letícia Camara f19f304477 Merge branch 'master' into mx 2018-12-03 13:37:52 -02:00
Letícia Camara 3aa855ef70 Merge branch 'master' into mx 2018-11-14 21:50:31 -02:00
Letícia Camara 0841aabb14 Add /ambs and /merchants es translations 2018-11-13 22:14:54 -02:00
Letícia Camara 0d8d5811c8 Merge branch 'master' into mx 2018-11-13 22:14:10 -02:00
Letícia Camara c932afdeee Merge branch 'master' into mx 2018-11-13 18:37:32 -02:00
Letícia Camara 0eef532e0e Change default language to es 2018-11-12 01:07:36 -02:00
8 changed files with 88 additions and 84 deletions

View File

@ -8,6 +8,7 @@
"@material-ui/icons": "^3.0.1",
"bootstrap": "^4.1.3",
"country-list": "^1.1.0",
"font-awesome": "^4.7.0",
"mdbreact": "^4.7.1",
"react": "^16.5.2",
"react-dom": "^16.5.2",
@ -15,7 +16,6 @@
"react-intl": "^2.6.0",
"react-modal": "^3.5.1",
"react-ripples": "^1.1.2",
"react-router-dom": "^4.3.1",
"react-scripts": "^1.1.5",
"react-scroll": "^1.7.10",
"recompose": "^0.30.0",

View File

@ -169,37 +169,38 @@ class EnhancedTable extends Component {
const searchQuery = query;
const searchColumns = this.state.searchColumns;
const data = this.props.data.filter((item) => {
let insert = false;
// Iterate over the search column select boxes
searchColumns.map(column => {
try {
if( column.checked && (item[column.name] !== undefined) ) {
if(item[column.name].hasOwnProperty('searchText') && item[column.name].searchText.toLowerCase().indexOf(searchQuery.toLowerCase().trim()) !== -1){
insert = true;
}
else if(item[column.name].toLowerCase().indexOf(searchQuery.toLowerCase().trim()) !== -1){
insert = true;
}
}
}
catch(error) {
//console.error(error);
}
return column;
});
if(insert){
return item;
}
return false;
});
const data = this.filterData(this.props.data, searchQuery, searchColumns);
this.props.onSearchChange(data);
};
// Sort the passed data based on the current component state.
sortData = (data) => {
const orderBy = this.state.orderBy;
const order = this.state.order;
data =
order === 'desc'
? data.sort((a, b) => {
let a_value = (a[orderBy] !== undefined) ? a[orderBy]: '';
let b_value = (b[orderBy] !== undefined) ? b[orderBy]: '';
a_value = a_value.hasOwnProperty('searchText') ? a_value.searchText.toLowerCase() : a_value.toLowerCase();
b_value = b_value.hasOwnProperty('searchText') ? b_value.searchText.toLowerCase() : b_value.toLowerCase();
return (b_value < a_value) ? -1 : 1;
})
: data.sort((a, b) => {
let a_value = (a[orderBy] !== undefined) ? a[orderBy]: '';
let b_value = (b[orderBy] !== undefined) ? b[orderBy]: '';
a_value = a_value.hasOwnProperty('searchText') ? a_value.searchText.toLowerCase() : a_value.toLowerCase();
b_value = b_value.hasOwnProperty('searchText') ? b_value.searchText.toLowerCase() : b_value.toLowerCase();
if(a_value.trim() === '') a_value = 'zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz';
if(b_value.trim() === '') b_value = 'zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz';
return (a_value < b_value) ? -1 : 1;
}
);
return data;
};
/*
* Update the search column select box
*/
@ -212,6 +213,48 @@ class EnhancedTable extends Component {
isSelected = id => this.state.selected.indexOf(id) !== -1;
filterData(data, searchQuery, searchColumns) {
// Remove white spaces and wrong "" split
const queryTerms = searchQuery.split(' ').filter(value => value !== '');
return data.filter((item) => {
const insertArray = [];
// Implement hardcoded AND query over each column
// Iterate over each search term
queryTerms.forEach(searchItem => {
let insert = false;
// Iterate over the search column select boxes
searchColumns.map(column => {
try {
if( column.checked && (item[column.name] !== undefined) ) {
if(item[column.name].hasOwnProperty('searchText') &&
item[column.name].searchText.toLowerCase().indexOf(searchItem.toLowerCase().trim()) !== -1
){
insert = true;
}
else if(item[column.name].toLowerCase().indexOf(searchItem.toLowerCase().trim()) !== -1){
insert = true;
}
}
}
catch(error) {
//console.error(error);
}
return column;
});
insertArray.push(insert);
});
// AND logic
if(insertArray.filter(item => !item).length === 0){
return item;
}
return false;
});
}
render() {
let { data } = this.props;
const { columnData, rowsPerPageOptions, showSearchColumns } = this.props;
@ -219,49 +262,10 @@ class EnhancedTable extends Component {
// Logic of search query and columns
if(searchQuery.length > 0) {
// Remove white spaces and wrong "" split
const queryTerms = searchQuery.split(' ').filter(value => value !== '');
data = data.filter((item) => {
const insertArray = [];
// Implement hardcoded AND query over each column
// Iterate over each search term
queryTerms.forEach(searchItem => {
let insert = false;
// Iterate over the search column select boxes
searchColumns.map(column => {
try {
if( column.checked && (item[column.name] !== undefined) ) {
if(item[column.name].hasOwnProperty('searchText') &&
item[column.name].searchText.toLowerCase().indexOf(searchItem.toLowerCase().trim()) !== -1
){
insert = true;
}
else if(item[column.name].toLowerCase().indexOf(searchItem.toLowerCase().trim()) !== -1){
insert = true;
}
}
}
catch(error) {
//console.error(error);
}
return column;
});
insertArray.push(insert);
});
// AND logic
if(insertArray.filter(item => !item).length === 0){
return item;
}
return false;
});
data = this.filterData(data, searchQuery, searchColumns);
}
data = this.sortData(data);
return (
<div style={styles.root}>

View File

@ -374,7 +374,7 @@ class AmbassadorsPage extends Component {
<AppHeader />
<div id="maincontent">
<section data-spy="scroll" data-target="#mainNav" id="services">
<section data-spy="scroll" data-target="#mainNav" id="services" className="ambs_services">
<div className="containerfix">
<div className="row">
<div className="col-md-10 mx-md-auto">

View File

@ -3,4 +3,8 @@
}
.merchants_services .MuiNotchedOutline-focused-120 {
border-color: rgb(19, 143, 82) !important;
}
.merchants_services table,
.ambs_services table {
min-width: 100% !important;
}

View File

@ -307,10 +307,6 @@ class MerchantsPage extends Component {
});
result.data.map(merchant => {
const infoDescription = <div>
<div><b>Address</b>: {merchant.address}</div>
{(merchant.phone) && (<div><b>Phone</b>: {merchant.phone}</div>)}
</div>;
if(merchant.telegram){
merchant.telegram_original = merchant.telegram;
merchant.telegram = {

View File

@ -24,7 +24,7 @@ const messages = {
'es': messages_es
};
const language = 'en';
const language = 'es';
// Add IntlProvider to make the internationalization functions visible in all
// our components.

View File

@ -73,13 +73,13 @@
"marketing.button.promotional_displays": "Promotional Displays",
"marketing.accordion.promotional_displays1": "<a target='_blank' rel='noopener noreferrer' href='https://keybase.io/team/Agorise' class='list-group-item list-group-item-action flex-column align-items-start'> <div class='d-flex w-100 justify-content-between'> <h5 class='mb-1'> Logos, Advertising images, Stickers and Merchandise, etc. (in the /PalmPay folder) </h5> </div> <p class='mb-1'>https://keybase.io/team/Agorise</p> </a>",
"ambassadors.title": "Ambassadors",
"ambassadors.merchants_link_description": "place of business",
"ambassadors.description1": "PalmPay Ambassadors are located in your city, or very near to you. Their job is to teach topics concerning Cryptocurrencies and Blockchains. Most offer local Meetups and Workshops too. So, if you are interested in these topics and would like to learn more, or even accept Cryptocurrencies at your ",
"ambassadors.description2": ", then be sure to contact a PalmPay Ambassador near you. If you are having trouble finding an Ambassador or would like to apply, feel free to <a target='_blank' rel='noopener noreferrer' href='https://t.me/Agorise'>contact us on Telegram</a> any time, we are glad to assist.",
"ambassadors.title": "Embajadores",
"ambassadors.merchants_link_description": "lugar de negocios",
"ambassadors.description1": "Los embajadores de PalmPay están ubicados en su ciudad o muy cerca de usted. Su trabajo es enseñar temas relacionados con las criptomonedas y las cadenas de bloques. La mayoría ofrece también reuniones y talleres locales. Por lo tanto, si está interesado en estos temas y desea obtener más información, o incluso aceptar Cryptocurrencies en su ",
"ambassadors.description2": ", entonces asegúrese de contactar a un embajador de PalmPay cerca de usted. Si tiene problemas para encontrar un Embajador o le gustaría presentar una solicitud, no dude en <a target='_blank' rel='noopener noreferrer' href='https://t.me/Agorise'>contáctenos en Telegram</a> cualquier momento, estamos encantados de ayudarle.",
"merchants.title": "Merchants",
"merchants.ambassadors_link_description": "PalmPay Ambassadors",
"merchants.description1": "PalmPay merchants are the backbone of the new Crypto Economy. If you are looking for businesses that will accept your Cryptocurrency, then just use the Search and Map data below. More merchants will be added here as the ",
"merchants.description2": " inform us. If you need help, just <a target='_blank' rel='noopener noreferrer' href='https://t.me/Agorise'>join us on Telegram</a> and we will be glad to assist you."
"merchants.title": "Mercantes",
"merchants.ambassadors_link_description": "Embajadores PalmPay",
"merchants.description1": "Los comerciantes de PalmPay son la columna vertebral de la nueva Crypto Economy. Si está buscando negocios que acepten su Cryptocurrency, simplemente use los datos de Búsqueda y Mapa a continuación. Más comerciantes serán agregados aquí como el ",
"merchants.description2": " informenos. Si necesitas ayuda, solo <a target='_blank' rel='noopener noreferrer' href='https://t.me/Agorise'>únete a nosotros en Telegram</a> y estaremos encantados de atenderte."
}

View File

@ -3,7 +3,7 @@ import feathers from '@feathersjs/client';
const app = feathers();
// Change to your production ambassador web service
//const restClient = feathers.rest('http://localhost:3030');
const restClient = feathers.rest('https://intranet.palmpay.io');
const restClient = feathers.rest('https://websvc.palmpay.io');
// Configure an Fetch AJAX library with that client. For fetch details see https://facebook.github.io/react-native/docs/network.html
// For rest details see https://docs.feathersjs.com/api/client/rest.html