Compare commits
142 Commits
v0.0.1
...
0de7c858a3
| Author | SHA1 | Date | |
|---|---|---|---|
| 0de7c858a3 | |||
| f5ea90faa0 | |||
| 3b77436210 | |||
| f2c56962a7 | |||
| 766f034ac4 | |||
| 966c611e0e | |||
| a7a4234f79 | |||
| d2442a256e | |||
| 31bdb511bb | |||
| a542184759 | |||
| f97a7c54ab | |||
| 886379b0f7 | |||
| a1eac4a91f | |||
| 95bc611309 | |||
| f6288105fb | |||
| 5692d9f3b2 | |||
| 984df3184f | |||
| 8cb2a9d918 | |||
| 88dd88241d | |||
| e0edf1932d | |||
| ebcb7aef1e | |||
| 432028c088 | |||
| 7d2373a080 | |||
| 2e61b070ba | |||
| a4aee540a6 | |||
| 51812950e3 | |||
| 577995cf03 | |||
| 6596089608 | |||
| 5f5abd0b3e | |||
| 55c06162ef | |||
| 23c4762347 | |||
| 7e220e3b05 | |||
| bc90fb9bb2 | |||
| 62c4444217 | |||
| a0cf3feecc | |||
| aea5fd9f6b | |||
| 50b480d963 | |||
| 59f0e75842 | |||
| 769e1bc7b1 | |||
| 99d7b89ebd | |||
| 9163c8ad84 | |||
| c87494b40e | |||
| fb2034ab97 | |||
| 266b9ddad8 | |||
| a9b09dc416 | |||
| de37aea2c4 | |||
| 92d89d90a3 | |||
| 31d98bddfb | |||
| e25017a25f | |||
| 2e63218e82 | |||
| 928d064fbe | |||
| f62840a450 | |||
| 7865c34b7d | |||
| 4aa313402a | |||
| e22dc706dc | |||
| 0ba0794197 | |||
| b67f736f04 | |||
| 79bb8ed05d | |||
| db39cea49b | |||
| 41fe987f5d | |||
| f391716de4 | |||
| 7f0aff735f | |||
| f08abbe9f6 | |||
| 74f3b1d282 | |||
| 346073b544 | |||
| 81f0c4c233 | |||
| 626f381c1b | |||
| 76024459a9 | |||
| aea41d6ac5 | |||
| 92af9cdd81 | |||
| b9de6b4a98 | |||
| b0747071e9 | |||
| f64576f3e8 | |||
| 9009ec13fb | |||
| dc77c56b43 | |||
| a3bd756566 | |||
| c54974811c | |||
| 3ca0ce7600 | |||
| d323cc274b | |||
| 49e0c1191f | |||
| 862d129d00 | |||
| 615f09399d | |||
| 0c400e3918 | |||
| f2e9e1550e | |||
| 18c2b8668c | |||
| 3c31423bb1 | |||
| e27259dca9 | |||
| b949c910ea | |||
| 944ec49640 | |||
| ae98daa2ec | |||
| 902e0031d4 | |||
| 34406d81fa | |||
| 7e7080f23c | |||
| 10917727a8 | |||
| 4d4c75aa48 | |||
| cf8c2131bd | |||
| dff9b496cf | |||
| 961b003078 | |||
| 44e2295bb7 | |||
| cf2e761c5a | |||
| c2d4a49eb2 | |||
| 1b025a1563 | |||
| 83a246ee6e | |||
| 65e7601bda | |||
| ee4b81e348 | |||
| d88c823b9f | |||
| 7d7f5c00dc | |||
| 31ae9aa725 | |||
| e7f26e9a39 | |||
| 999520c31f | |||
| 285a4c2cfa | |||
| 45193b66b8 | |||
| 8a9df7b1df | |||
| b992d1f9b4 | |||
| 2261ab9d72 | |||
| 7447f7d96e | |||
| 0cc56dd4df | |||
| dabec5c244 | |||
| efc87db1ca | |||
| ad56540080 | |||
| 6d8cdc01ee | |||
| 6c40d4f22e | |||
| ef45fd4b6b | |||
| 76983004a6 | |||
| f3c2c37326 | |||
| 54296bf7d6 | |||
| e122fb93fc | |||
| cff0929205 | |||
| 8b8eaf88f9 | |||
| 46ed530ec1 | |||
| 2b38b02530 | |||
| 90ee3dd46f | |||
| f1e5d7eec7 | |||
| 0cd1f321f9 | |||
| 6956c7f409 | |||
| a456043ced | |||
| 1edcd3ea58 | |||
| 80d5044534 | |||
| f8b262ae54 | |||
| 6cce6a0a45 | |||
| e276b6cb7b | |||
| a43c48cd99 |
@@ -1,4 +1,4 @@
|
||||
FROM node:boron
|
||||
FROM node:erbium
|
||||
|
||||
# Create app directory
|
||||
RUN mkdir -p /usr/src/app
|
||||
|
||||
@@ -7,17 +7,37 @@ A microservice to handle flitterware payment services
|
||||
* Build the docker image by `docker build -t flutterwave-transfer-micro .`
|
||||
|
||||
# Run
|
||||
* Set environment variables like `MONGO_URL` and `RABBITMQ_URL`. Full list in the wiki.
|
||||
* `docker run -p <BINDING> -e PORT=<app_port> -e POSTGRE_URL=<postgre_url> -i -t flutterwave-transfer-micro`
|
||||
* Set environment variables like `PORT` and `POSTGRE_URL`. Full list in the wiki.
|
||||
* `docker run -p <BINDING> -e PORT=<app_port> -e POSTGRE_URL=<postgre_url> -e FLUTTERWAVE_API=<flutterwave_config> -i -t flutterwave-transfer-micro`
|
||||
|
||||
## Example configurations
|
||||
* binding: 127.0.0.1:3000:3000/tcp
|
||||
* app_port: 3000
|
||||
* postgre_url: postgresql://wrenchboard:wrenchboard@10.10.10.23:5432/wrenchboard
|
||||
* flutterwave_config: eyJCYXNlQXBpVXJsIjoiaHR0cHM6Ly9hcGkuZmx1dHRlcndhdmUuY29tIiwiUHVibGljS2V5IjoiRkxXUFVCS19URVNULTU0YzkwMTQxYjAyODc4OWQ2NzEwNjdiZDcyZjc4MWE5LVgiLCJTZWNyZXRLZXkiOiJGTFdTRUNLX1RFU1QtYzdiYmM4NmQ3ZTcxMDAyNTRjNWU1YmJmMTYyYmYyYjItWCIsIkVuY3J5cHRpb25LZXkiOiJGTFdTRUNLX1RFU1RlOTQ3NGQ0ZTJjZTYifQ==
|
||||
|
||||
## Example command
|
||||
|
||||
docker run -p 127.0.0.1:3000:3000/tcp -e PORT=3000 -e POSTGRE_URL='postgresql://wrenchboard:wrenchboard@10.10.10.23:5432/wrenchboard' -i -t flutterwave-transfer-micro
|
||||
```
|
||||
docker run -p 127.0.0.1:3000:3000/tcp \
|
||||
-e PORT=3000 \
|
||||
-e POSTGRE_URL='postgresql://wrenchboard:wrenchboard@10.10.10.23:5432/wrenchboard' \
|
||||
-e FLUTTERWAVE_API='eyJCYXNlQXBpVXJsIjoiaHR0cHM6Ly9hcGkuZmx1dHRlcndhdmUuY29tIiwiUHVibGljS2V5IjoiRkxXUFVCS19URVNULTU0YzkwMTQxYjAyODc4OWQ2NzEwNjdiZDcyZjc4MWE5LVgiLCJTZWNyZXRLZXkiOiJGTFdTRUNLX1RFU1QtYzdiYmM4NmQ3ZTcxMDAyNTRjNWU1YmJmMTYyYmYyYjItWCIsIkVuY3J5cHRpb25LZXkiOiJGTFdTRUNLX1RFU1RlOTQ3NGQ0ZTJjZTYifQ==' \
|
||||
-i -t flutterwave-transfer-micro
|
||||
```
|
||||
|
||||
## Flutterwave config
|
||||
|
||||
Either use a converniece script base64encoder.js or base64 CLI to encode the config:
|
||||
|
||||
```
|
||||
echo '{
|
||||
"BaseApiUrl":"https://api.flutterwave.com",
|
||||
"PublicKey":"FLWPUBK_TEST-54c90141b028789d671067bd72f781a9-X",
|
||||
"SecretKey":"FLWSECK_TEST-c7bbc86d7e7100254c5e5bbf162bf2b2-X",
|
||||
"EncryptionKey":"FLWSECK_TESTe9474d4e2ce6"
|
||||
}' | base64
|
||||
```
|
||||
|
||||
# Test
|
||||
`npm test`
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
'use strict';
|
||||
|
||||
const properties = require('../package.json')
|
||||
const distance = require('../service/distance');
|
||||
const transfer = require('../service/transfer');
|
||||
|
||||
var controllers = {
|
||||
about: function(req, res) {
|
||||
@@ -11,13 +11,22 @@ var controllers = {
|
||||
}
|
||||
res.json(aboutInfo);
|
||||
},
|
||||
getDistance: function(req, res) {
|
||||
distance.find(req, res, function(err, dist) {
|
||||
if (err)
|
||||
res.send(err);
|
||||
res.json(dist);
|
||||
});
|
||||
},
|
||||
postTransfer: function(req, res) {
|
||||
transfer.create(req, res, function(err, dist) {
|
||||
if (err) {
|
||||
res.send(err);
|
||||
}
|
||||
res.json(dist);
|
||||
});
|
||||
},
|
||||
getStatus: function(req, res) {
|
||||
transfer.get(req, res, function(err, dist) {
|
||||
if (err) {
|
||||
res.send(err);
|
||||
}
|
||||
res.json(dist);
|
||||
});
|
||||
},
|
||||
};
|
||||
|
||||
module.exports = controllers;
|
||||
|
||||
@@ -5,6 +5,8 @@ const controller = require('./controller');
|
||||
module.exports = function(app) {
|
||||
app.route('/about')
|
||||
.get(controller.about);
|
||||
app.route('/distance/:zipcode1/:zipcode2')
|
||||
.get(controller.getDistance);
|
||||
app.route('/create')
|
||||
.post(controller.postTransfer);
|
||||
app.route('/status/:id')
|
||||
.get(controller.getStatus);
|
||||
};
|
||||
|
||||
@@ -0,0 +1,9 @@
|
||||
'use strict';
|
||||
|
||||
let data = 'eyJQdWJsaWNLZXkiOiJGTFdQVUJLX1RFU1QtNTRjOTAxNDFiMDI4Nzg5ZDY3MTA2N2JkNzJmNzgxYTktWCIsIlNlY3JldEtleSI6IkZMV1NFQ0tfVEVTVC1jN2JiYzg2ZDdlNzEwMDI1NGM1ZTViYmYxNjJiZjJiMi1YIiwiRW5jcnlwdGlvbktleSI6IkZMV1NFQ0tfVEVTVGU5NDc0ZDRlMmNlNiJ9';
|
||||
let buff = new Buffer(data, 'base64');
|
||||
let text = buff.toString('ascii');
|
||||
let json = JSON.parse(text);
|
||||
|
||||
console.log('"' + data + '" converted from Base64 to ASCII is "' + text + '"');
|
||||
console.log(json);
|
||||
@@ -0,0 +1,13 @@
|
||||
'use strict';
|
||||
|
||||
let json = {
|
||||
"BaseApiUrl":"https://api.flutterwave.com",
|
||||
"PublicKey":"FLWPUBK_TEST-54c90141b028789d671067bd72f781a9-X",
|
||||
"SecretKey":"FLWSECK_TEST-c7bbc86d7e7100254c5e5bbf162bf2b2-X",
|
||||
"EncryptionKey":"FLWSECK_TESTe9474d4e2ce6"
|
||||
};
|
||||
let data = JSON.stringify(json);
|
||||
let buff = new Buffer(data);
|
||||
let base64data = buff.toString('base64');
|
||||
|
||||
console.log('"' + data + '" converted to Base64 is "' + base64data + '"');
|
||||
@@ -0,0 +1,19 @@
|
||||
version: '3'
|
||||
services:
|
||||
flutterwave-transfer-micro:
|
||||
build:
|
||||
context: .
|
||||
dockerfile: Dockerfile
|
||||
restart: unless-stopped
|
||||
image: registry.chiefsoft.net/flutterwave-transfer-micro:latest
|
||||
volumes:
|
||||
- ./:/app
|
||||
- '/app/node_modules'
|
||||
ports:
|
||||
- 9086:3000
|
||||
environment:
|
||||
- PORT=3000
|
||||
- POSTGRE_URL='postgresql://wrenchboard:wrenchboard@10.10.10.23:5432/wrenchboard'
|
||||
- FLUTTERWAVE_API='eyJCYXNlQXBpVXJsIjoiaHR0cHM6Ly9hcGkuZmx1dHRlcndhdmUuY29tIiwiUHVibGljS2V5IjoiRkxXUFVCS19URVNULTU0YzkwMTQxYjAyODc4OWQ2NzEwNjdiZDcyZjc4MWE5LVgiLCJTZWNyZXRLZXkiOiJGTFdTRUNLX1RFU1QtYzdiYmM4NmQ3ZTcxMDAyNTRjNWU1YmJmMTYyYmYyYjItWCIsIkVuY3J5cHRpb25LZXkiOiJGTFdTRUNLX1RFU1RlOTQ3NGQ0ZTJjZTYifQ=='
|
||||
volumes:
|
||||
src:
|
||||
+1706
-219
File diff suppressed because it is too large
Load Diff
@@ -1,10 +1,10 @@
|
||||
{
|
||||
"name": "flutterwave-transfer-micro",
|
||||
"version": "0.0.1",
|
||||
"description": "A microservice to handle flitterware payment services",
|
||||
"version": "0.0.4",
|
||||
"description": "A microservice to handle flutterware payment services",
|
||||
"main": "server.js",
|
||||
"scripts": {
|
||||
"generate-docs": "jsdoc ./api/*.js ./api/**/*.js ./service/*.js ./services/**/*.js -d docs",
|
||||
"generate-docs": "jsdoc ./api/*.js ./api/**/*.js ./app/*.js ./app/**/*.js ./service/*.js ./service/**/*.js -d docs",
|
||||
"lint": "eslint ./ --ext .js",
|
||||
"start": "node server.js",
|
||||
"start:dev": "nodemon server.js",
|
||||
@@ -12,9 +12,15 @@
|
||||
},
|
||||
"author": "Anatolii Okhotnikov <acidumirae@gmail.com>",
|
||||
"dependencies": {
|
||||
"pg": "8.7.1",
|
||||
"axios": "^0.24.0",
|
||||
"body-parser": "^1.19.0",
|
||||
"express": "^4.17.1",
|
||||
"openapi-types": "^10.0.0",
|
||||
"pg": "8.7.1",
|
||||
"request": "^2.88.2",
|
||||
"swagger-autogen": "^2.17.2",
|
||||
"swagger-jsdoc": "^6.1.0",
|
||||
"swagger-ui-express": "^4.3.0",
|
||||
"underscore": "^1.8.3",
|
||||
"winston": "^2.3.1",
|
||||
"winston-papertrail": "^1.0.4"
|
||||
|
||||
@@ -1,10 +1,151 @@
|
||||
const express = require('express')
|
||||
const express = require('express');
|
||||
const logger = require('./app/logger');
|
||||
const app = express();
|
||||
const swaggerUI = require('swagger-ui-express');
|
||||
const swaggerJSDocs = require('swagger-jsdoc');
|
||||
|
||||
const port = process.env.PORT || 3000;
|
||||
|
||||
const definition = {
|
||||
"swagger": "2.0",
|
||||
"info": {
|
||||
"version": "0.0.4",
|
||||
"title": "flutterwave-transfer-micro",
|
||||
"description": "A microservice to handle flitterware payment services"
|
||||
},
|
||||
"host": "localhost:3000",
|
||||
"basePath": "/",
|
||||
"tags": [],
|
||||
"schemes": [
|
||||
"http"
|
||||
],
|
||||
"consumes": ['application/json'],
|
||||
"produces": ['application/json'],
|
||||
"paths": {
|
||||
"/about": {
|
||||
"get": {
|
||||
"tags": [],
|
||||
"description": "About the microservice (service status)",
|
||||
"parameters": [],
|
||||
"responses": {
|
||||
"200": {
|
||||
"description": "OK"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"/create": {
|
||||
"post": {
|
||||
"tags": [],
|
||||
"description": "Create new transfer",
|
||||
"produces": [
|
||||
"application/json"
|
||||
],
|
||||
"parameters": [{
|
||||
"name":"transfer",
|
||||
"in": "body",
|
||||
"description": "Transfer to create",
|
||||
"required": true,
|
||||
"type":"object",
|
||||
"schema": {
|
||||
"$ref": "#/definitions/NewTransfer"
|
||||
},
|
||||
"example": {
|
||||
"account_bank": "044",
|
||||
"account_number": "0690000040",
|
||||
"amount": 5500,
|
||||
"narration": "Akhlm Pstmn Trnsfr xx007",
|
||||
"currency": "NGN",
|
||||
"reference": "akhlm-pstmnpyt-rfxx007_PMCKDU_1",
|
||||
"debit_currency": "NGN"
|
||||
}
|
||||
}],
|
||||
"responses": {
|
||||
"200": {
|
||||
"description": "OK"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"/status/{id}": {
|
||||
"get": {
|
||||
"tags": [],
|
||||
"description": "Get transfer status",
|
||||
"parameters": [
|
||||
{
|
||||
"name": "id",
|
||||
"in": "path",
|
||||
"required": true,
|
||||
"type": "string"
|
||||
}
|
||||
],
|
||||
"responses": {
|
||||
"200": {
|
||||
"description": "OK"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"definitions": {
|
||||
"NewTransfer": {
|
||||
"type": "object",
|
||||
"required": [
|
||||
"account_bank",
|
||||
"account_number",
|
||||
"amount",
|
||||
"narration",
|
||||
"currency",
|
||||
"reference",
|
||||
"debit_currency"
|
||||
],
|
||||
"properties": {
|
||||
"account_bank": {
|
||||
"type": "string"
|
||||
},
|
||||
"account_number": {
|
||||
"type": "string"
|
||||
},
|
||||
"amount": {
|
||||
"type": "integer"
|
||||
},
|
||||
"narration": {
|
||||
"type": "string"
|
||||
},
|
||||
"currency": {
|
||||
"type": "string"
|
||||
},
|
||||
"reference": {
|
||||
"type": "string"
|
||||
},
|
||||
"debit_currency": {
|
||||
"type": "string"
|
||||
}
|
||||
}
|
||||
},
|
||||
}
|
||||
};
|
||||
|
||||
const options = {
|
||||
definition,
|
||||
apis: ['./server.js'],
|
||||
};
|
||||
|
||||
const swaggerSpec = swaggerJSDocs(options);
|
||||
|
||||
const app = express();
|
||||
|
||||
app.get('/swagger.json', (req, res) => {
|
||||
res.setHeader('Content-Type', 'application/json');
|
||||
res.send(swaggerSpec);
|
||||
});
|
||||
app.use('/api-docs', swaggerUI.serve, swaggerUI.setup(swaggerSpec));
|
||||
|
||||
app.use(express.json());
|
||||
app.use(express.urlencoded());
|
||||
|
||||
const routes = require('./api/routes');
|
||||
routes(app);
|
||||
app.listen(port, function() {
|
||||
|
||||
app.listen(port, "0.0.0.0", function() {
|
||||
logger.info('***** Server started on port: ' + port + ' *****');
|
||||
});
|
||||
|
||||
@@ -1,36 +0,0 @@
|
||||
const request = require('request');
|
||||
const db = require('../app/db')
|
||||
const logger = require('../app/logger');
|
||||
|
||||
const apiKey = process.env.ZIPCODE_API_KEY || "x4hw36qerDOdewjz5HIx4IR7XO5wsWVb7jFZTJ9jvCYYIHNhvK4aIpMExKb5gEoW";
|
||||
const zipCodeURL = 'https://www.zipcodeapi.com/rest/';
|
||||
|
||||
var distance = {
|
||||
find: function(req, res, next) {
|
||||
var url = zipCodeURL + apiKey
|
||||
+ '/distance.json/' + req.params.zipcode1 + '/'
|
||||
+ req.params.zipcode2 + '/mile';
|
||||
logger.info(url);
|
||||
process.env["NODE_TLS_REJECT_UNAUTHORIZED"] = 0;
|
||||
request(url,
|
||||
function (error, response, body) {
|
||||
if (!error && response.statusCode == 200) {
|
||||
response = JSON.parse(body);
|
||||
res.send(response);
|
||||
} else {
|
||||
logger.info(error);
|
||||
res.send({distance: -1});
|
||||
}
|
||||
});
|
||||
// Sample DB call
|
||||
db.query('SELECT NOW()', (err, res) => {
|
||||
if (err) {
|
||||
throw err;
|
||||
}
|
||||
logger.info('time:', res.rows[0])
|
||||
});
|
||||
}
|
||||
};
|
||||
|
||||
module.exports = distance;
|
||||
|
||||
@@ -0,0 +1,98 @@
|
||||
'use strict';
|
||||
|
||||
const axios = require('axios');
|
||||
const request = require('request');
|
||||
const db = require('../app/db')
|
||||
const logger = require('../app/logger');
|
||||
|
||||
// https://developer.flutterwave.com/reference/create-a-transfer
|
||||
const flutterwaveConfigBuffer = new Buffer(process.env.FLUTTERWAVE_API, 'base64');
|
||||
const flutterwaveConfig = JSON.parse(flutterwaveConfigBuffer.toString('ascii'));
|
||||
|
||||
var transfer = {
|
||||
create: function(req, res, next) {
|
||||
var url = flutterwaveConfig.BaseApiUrl + '/v3/transfers';
|
||||
var headersOpt = {
|
||||
"Content-Type": "application/json",
|
||||
"Authorization": "Bearer " + flutterwaveConfig.SecretKey,
|
||||
};
|
||||
var data = {
|
||||
"account_bank": req.body.account_bank,
|
||||
"account_number": req.body.account_number,
|
||||
"amount": req.body.amount,
|
||||
"narration": req.body.narration,
|
||||
"currency": req.body.currency,
|
||||
"reference": req.body.reference,
|
||||
"debit_currency": req.body.debit_currency
|
||||
};
|
||||
var options = {
|
||||
headers: headersOpt
|
||||
};
|
||||
logger.info(url);
|
||||
logger.info(options);
|
||||
logger.info(data);
|
||||
// https://blog.logrocket.com/5-ways-to-make-http-requests-in-node-js/
|
||||
// https://stackoverflow.com/questions/53846709/how-do-i-use-axios-within-expressjs
|
||||
axios.post(url, data, options)
|
||||
.then(data => {
|
||||
res.json(data);
|
||||
})
|
||||
.catch(err => {
|
||||
logger.error(err.message);
|
||||
//logger.error(err.stack);
|
||||
logger.error(err.response.data);
|
||||
//logger.error(err.response.headers);
|
||||
res.send({
|
||||
status: "failure",
|
||||
message: "Invalid response",
|
||||
details: err.message,
|
||||
code: err.response.status,
|
||||
data: err.response.data
|
||||
});
|
||||
});
|
||||
// TODO: Do we save the response in the DB? I assume: YES
|
||||
db.query('SELECT NOW()', (err, res) => {
|
||||
if (err) {
|
||||
throw err;
|
||||
}
|
||||
logger.info('time:', res.rows[0])
|
||||
});
|
||||
},
|
||||
get: function(req, res, next) {
|
||||
var url = flutterwaveConfig.BaseApiUrl + '/v3/transfers/' + req.params.id;
|
||||
var headersOpt = {
|
||||
"Authorization": "Bearer " + flutterwaveConfig.SecretKey,
|
||||
};
|
||||
var options = {
|
||||
headers: headersOpt
|
||||
};
|
||||
logger.info(url);
|
||||
axios.get(url, options)
|
||||
.then(data => {
|
||||
res.json(data);
|
||||
})
|
||||
.catch(err => {
|
||||
logger.error(err.message);
|
||||
//logger.error(err.stack);
|
||||
logger.error(err.response.data);
|
||||
//logger.error(err.response.headers);
|
||||
res.send({
|
||||
status: "failure",
|
||||
message: "Invalid response",
|
||||
details: err.message,
|
||||
code: err.response.status,
|
||||
data: err.response.data
|
||||
});
|
||||
});
|
||||
// TODO: Do we save the response in the DB? I assume: YES
|
||||
db.query('SELECT NOW()', (err, res) => {
|
||||
if (err) {
|
||||
throw err;
|
||||
}
|
||||
logger.info('time:', res.rows[0])
|
||||
});
|
||||
}
|
||||
};
|
||||
|
||||
module.exports = transfer;
|
||||
|
||||
@@ -0,0 +1,8 @@
|
||||
const swaggerAutogen = require('swagger-autogen')();
|
||||
|
||||
const outputFile = './swagger.json';
|
||||
const endpointsFiles = ['./api/routes.js']
|
||||
|
||||
swaggerAutogen(outputFile, endpointsFiles).then(() => {
|
||||
require('./server.js')
|
||||
})
|
||||
@@ -16,17 +16,16 @@ img {height: auto;}
|
||||
.subhead {font-size: 12px; color: #ffffff; font-family: sans-serif; letter-spacing: 3px;}
|
||||
.h1, .h2, .bodycopy {color: #153643; font-family: sans-serif;}
|
||||
.h1 {font-size: 33px; line-height: 38px; font-weight: bold;}
|
||||
.h2 {padding: 0 0 15px 0; font-size: 24px; line-height: 28px; font-weight: bold;}
|
||||
.bodycopy {font-size: 14px; line-height: 20px;}
|
||||
.button {text-align: center; font-size: 16px; font-family: sans-serif; font-weight: bold; padding: 0 30px 0 30px;}
|
||||
.button a {color: #ffffff; text-decoration: none;}
|
||||
.footer {padding: 20px 30px 15px 30px;}
|
||||
.footer {padding: 20px 30px 15px 30px; bgcolor:#007bff; background-color:#007bff;}
|
||||
.footercopy {font-family: sans-serif; font-size: 14px; color: #ffffff;}
|
||||
.footercopy a {color: #ffffff; text-decoration: underline;}
|
||||
</style>
|
||||
</head>
|
||||
|
||||
<body yahoo bgcolor="#f6f8f1">
|
||||
<body bgcolor="#f6f8f1">
|
||||
<table width="100%" bgcolor="#f6f8f1" border="0" cellpadding="0" cellspacing="0">
|
||||
<tr>
|
||||
<td>
|
||||
@@ -50,12 +49,12 @@ img {height: auto;}
|
||||
<table width="100%" border="0" cellspacing="0" cellpadding="0">
|
||||
|
||||
<tr>
|
||||
<td class="h1" style="padding: 5px 0 0 0;">
|
||||
{{site_name}}
|
||||
<td style="padding: 1px 0 1px 0; text-align:center;">
|
||||
<a href="https://www.wrenchboard.com/"><img src="https://dashboard.wrenchboard.com/assets/ext/images/wrenchboard.png" alt="WrenchBoard"></a> <!-- {{site_name}} -->
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="subhead" style="padding: 0 0 0 3px;">
|
||||
<td class="subhead" style="padding: 0 0 0 3px; text-align:center;">
|
||||
{{site_trade_name}}
|
||||
</td>
|
||||
</tr>
|
||||
@@ -131,13 +130,12 @@ For all support, contact us at <a href="https://{{server_name}}/contact">https:
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="footer" bgcolor="#44525f">
|
||||
<td class="footer">
|
||||
<table width="100%" border="0" cellspacing="0" cellpadding="0">
|
||||
<tr>
|
||||
<td align="center" class="footercopy">
|
||||
® {{site_name}} 2018<br/>
|
||||
You received this email because you subscribe to {{site_name}}. If you get this email in error, please <a href="https://{{server_name}}/contactus" class="unsubscribe"><font color="#ffffff">contact</font></a> us.
|
||||
|
||||
® {{site_name}} 2022<br/>
|
||||
You received this email because you subscribe to {{site_name}}. If you get this email in error, please <a href="https://{{server_name}}/contact" class="unsubscribe"><font color="#ffffff">contact</font></a> us.
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
@@ -150,7 +148,7 @@ You received this email because you subscribe to {{site_name}}. If you get this
|
||||
</a>
|
||||
</td>
|
||||
<td width="37" style="text-align: center; padding: 0 10px 0 10px;">
|
||||
<a href="https://twitter.com/wrenchboard">
|
||||
<a href="http://www.twitter.com/">
|
||||
<img src="https://{{server_name}}/assets/images/brands/twitter.png" width="37" height="37" alt="Twitter" border="0" />
|
||||
</a>
|
||||
</td>
|
||||
@@ -171,7 +169,8 @@ You received this email because you subscribe to {{site_name}}. If you get this
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<!--analytics-->
|
||||
<script src="http://code.jquery.com/jquery-1.10.1.min.js"></script>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -4,7 +4,7 @@ Subject: {{site_name}} - Log in Confirmation
|
||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
||||
<meta charset="utf-8">
|
||||
<title>{{site_name}} - Log in Confirmation</title>
|
||||
<style type="text/css">
|
||||
body {margin: 0; padding: 0; min-width: 100%!important;}
|
||||
@@ -16,17 +16,16 @@ img {height: auto;}
|
||||
.subhead {font-size: 12px; color: #ffffff; font-family: sans-serif; letter-spacing: 3px;}
|
||||
.h1, .h2, .bodycopy {color: #153643; font-family: sans-serif;}
|
||||
.h1 {font-size: 33px; line-height: 38px; font-weight: bold;}
|
||||
.h2 {padding: 0 0 15px 0; font-size: 24px; line-height: 28px; font-weight: bold;}
|
||||
.bodycopy {font-size: 14px; line-height: 20px;}
|
||||
.button {text-align: center; font-size: 16px; font-family: sans-serif; font-weight: bold; padding: 0 30px 0 30px;}
|
||||
.button a {color: #ffffff; text-decoration: none;}
|
||||
.footer {padding: 20px 30px 15px 30px;}
|
||||
.footer {padding: 20px 30px 15px 30px; bgcolor:#007bff; background-color:#007bff;}
|
||||
.footercopy {font-family: sans-serif; font-size: 14px; color: #ffffff;}
|
||||
.footercopy a {color: #ffffff; text-decoration: underline;}
|
||||
</style>
|
||||
</head>
|
||||
|
||||
<body yahoo bgcolor="#f6f8f1">
|
||||
<body bgcolor="#f6f8f1">
|
||||
<table width="100%" bgcolor="#f6f8f1" border="0" cellpadding="0" cellspacing="0">
|
||||
<tr>
|
||||
<td>
|
||||
@@ -43,18 +42,18 @@ img {height: auto;}
|
||||
<tr>
|
||||
<td>
|
||||
<![endif]-->
|
||||
<table class="col425" align="left" border="0" cellpadding="0" cellspacing="0" style="width: 100%; max-width: 425px;">
|
||||
<table align="left" border="0" cellpadding="0" cellspacing="0" style="width: 100%; max-width: 600px;">
|
||||
<tr>
|
||||
<td height="50">
|
||||
<td height="30" border="0" style="text-align:center;">
|
||||
<table width="100%" border="0" cellspacing="0" cellpadding="0">
|
||||
|
||||
<tr>
|
||||
<td class="h1" style="padding: 5px 0 0 0;">
|
||||
{{site_name}}
|
||||
<td style="padding: 1px 0 1px 0; text-align:center;">
|
||||
<a href="https://www.wrenchboard.com/"><img src="https://dashboard.wrenchboard.com/assets/ext/images/wrenchboard.png" alt="WrenchBoard"></a> <!-- {{site_name}} -->
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="subhead" style="padding: 0 0 0 3px;">
|
||||
<td class="subhead" style="padding: 0 0 0 3px; text-align:center;">
|
||||
{{site_trade_name}}
|
||||
</td>
|
||||
</tr>
|
||||
@@ -69,18 +68,7 @@ img {height: auto;}
|
||||
<![endif]-->
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="innerpadding borderbottom">
|
||||
<table width="100%" border="0" cellspacing="0" cellpadding="0">
|
||||
<tr>
|
||||
<td>
|
||||
Hello {{firstname}},
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="innerpadding borderbottom">
|
||||
<!--[if (gte mso 9)|(IE)]>
|
||||
@@ -90,29 +78,22 @@ Hello {{firstname}},
|
||||
<![endif]-->
|
||||
<table class="col380" align="left" border="0" cellpadding="0" cellspacing="0" style="width: 100%;">
|
||||
<tr>
|
||||
<td class="bodycopy">
|
||||
Hello {{firstname}},
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<table width="100%" border="0" cellspacing="0" cellpadding="0">
|
||||
<tr>
|
||||
<td class="bodycopy">
|
||||
Please be informed that you logged on to {{site_name}} account at <b>{{last_login2}}</b> from <b>{{loc}}</b>.
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td class="bodycopy">
|
||||
Please be informed that you logged on to {{site_name}} account at <b>{{last_login2}}</b>.
|
||||
If you did not log on to your account at the time detailed above, please contact us immediately.
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
</table>
|
||||
<!--[if (gte mso 9)|(IE)]>
|
||||
</td>
|
||||
@@ -124,7 +105,7 @@ If you did not log on to your account at the time detailed above, please contact
|
||||
|
||||
<tr>
|
||||
<td class="innerpadding bodycopy">
|
||||
For all support, contact us at <a href="https://{{server_name}}/contact">https://{{server_name}}/contact</a>
|
||||
For all support, contact us at <a href="{{server_name}}/contact">https://{{server_name}}/contact</a>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
@@ -149,19 +130,19 @@ Recently added task(s)
|
||||
{{pin}}
|
||||
{{/...}}
|
||||
{{/inv_items}}
|
||||
</table
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
</td></tr>
|
||||
|
||||
|
||||
<tr>
|
||||
<td class="footer" bgcolor="#44525f">
|
||||
<td class="footer">
|
||||
<table width="100%" border="0" cellspacing="0" cellpadding="0">
|
||||
<tr>
|
||||
<td align="center" class="footercopy">
|
||||
® {{site_name}} 2018<br/>
|
||||
You received this email because you subscribe to {{site_name}}. If you get this email in error, please <a href="https://{{server_name}}/contactus" class="unsubscribe"><font color="#ffffff">contact</font></a> us.
|
||||
® {{site_name}} 2022<br/>
|
||||
You received this email because you subscribe to {{site_name}}. If you get this email in error, please <a href="https://{{server_name}}/contact" class="unsubscribe"><font color="#ffffff">contact</font></a> us.
|
||||
|
||||
</td>
|
||||
</tr>
|
||||
@@ -195,8 +176,5 @@ You received this email because you subscribe to {{site_name}}. If you get this
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<!--analytics-->
|
||||
<script src="http://code.jquery.com/jquery-1.10.1.min.js"></script>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
@@ -97,7 +97,7 @@ body[yahoo] .unsubscribe {display: block; margin-top: 20px; padding: 10px 50px;
|
||||
<table width="100%" border="0" cellspacing="0" cellpadding="0">
|
||||
<tr>
|
||||
<td>
|
||||
Dear {{firstname}},
|
||||
Dear {{firstname}},
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
|
||||
@@ -4,33 +4,28 @@ Subject: {{site_name}} - Pending Signup - Verify {{email}}
|
||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
||||
<meta charset="utf-8">
|
||||
<title>{{site_name}} - Pending Signup - Verify {{email}}</title>
|
||||
<style type="text/css">
|
||||
body {margin: 0; padding: 0; min-width: 100%!important;}
|
||||
img {height: auto;}
|
||||
.content {width: 100%; max-width: 600px;}
|
||||
.header {padding: 10px 10px 10px 10px;}
|
||||
.innerpadding {padding: 30px 30px 30px 30px;}
|
||||
.innerpadding {padding: 10px 10px 10px 10px;}
|
||||
.borderbottom {border-bottom: 1px solid #f2eeed;}
|
||||
.subhead {font-size: 12px; color: #ffffff; font-family: sans-serif; letter-spacing: 3px;}
|
||||
.h1, .h2, .bodycopy {color: #153643; font-family: sans-serif;}
|
||||
.h1 {font-size: 33px; line-height: 38px; font-weight: bold;}
|
||||
.h2 {padding: 0 0 15px 0; font-size: 24px; line-height: 28px; font-weight: bold;}
|
||||
.h3 {padding: 0 0 15px 0; font-size: 20px; line-height: 20px; font-weight: bold;}
|
||||
.bodycopy {font-size: 16px; line-height: 22px;}
|
||||
.button {text-align: center; font-size: 18px; font-family: sans-serif; font-weight: bold; padding: 0 30px 0 30px;}
|
||||
.bodycopy {font-size: 14px; line-height: 20px;}
|
||||
.button {text-align: center; font-size: 16px; font-family: sans-serif; font-weight: bold; padding: 0 30px 0 30px;}
|
||||
.button a {color: #ffffff; text-decoration: none;}
|
||||
.footer {padding: 20px 30px 15px 30px;}
|
||||
.footer {padding: 20px 30px 15px 30px; bgcolor:#007bff; background-color:#007bff;}
|
||||
.footercopy {font-family: sans-serif; font-size: 14px; color: #ffffff;}
|
||||
.footercopy a {color: #ffffff; text-decoration: underline;}
|
||||
|
||||
|
||||
|
||||
</style>
|
||||
</head>
|
||||
|
||||
<body yahoo bgcolor="#f6f8f1">
|
||||
<body bgcolor="#f6f8f1">
|
||||
<table width="100%" bgcolor="#f6f8f1" border="0" cellpadding="0" cellspacing="0">
|
||||
<tr>
|
||||
<td>
|
||||
@@ -47,18 +42,18 @@ img {height: auto;}
|
||||
<tr>
|
||||
<td>
|
||||
<![endif]-->
|
||||
<table class="col425" align="left" border="0" cellpadding="0" cellspacing="0" style="width: 100%; max-width: 100%;">
|
||||
<table align="left" border="0" cellpadding="0" cellspacing="0" style="width: 100%; max-width: 600px;">
|
||||
<tr>
|
||||
<td height="50">
|
||||
<td height="30" border="0" style="text-align:center;">
|
||||
<table width="100%" border="0" cellspacing="0" cellpadding="0">
|
||||
|
||||
<tr>
|
||||
<td class="h1" style="padding: 5px 0 0 0;">
|
||||
{{site_name}}
|
||||
<td style="padding: 1px 0 1px 0; text-align:center;">
|
||||
<a href="https://www.wrenchboard.com/"><img src="https://dashboard.wrenchboard.com/assets/ext/images/wrenchboard.png" alt="WrenchBoard"></a> <!-- {{site_name}} -->
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="subhead" style="padding: 0 0 0 3px;">
|
||||
<td class="subhead" style="padding: 0 0 0 3px; text-align:center;">
|
||||
{{site_trade_name}}
|
||||
</td>
|
||||
</tr>
|
||||
@@ -73,17 +68,23 @@ img {height: auto;}
|
||||
<![endif]-->
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td class="innerpadding borderbottom">
|
||||
<table width="100%" border="0" cellspacing="0" cellpadding="0">
|
||||
<!--[if (gte mso 9)|(IE)]>
|
||||
<table width="100%" align="left" cellpadding="0" cellspacing="0" border="0">
|
||||
<tr>
|
||||
<td>
|
||||
Dear {{firstname}},
|
||||
<![endif]-->
|
||||
<table class="col380" align="left" border="0" cellpadding="0" cellspacing="0" style="width: 100%;">
|
||||
<tr>
|
||||
<td class="bodycopy">
|
||||
Hello {{firstname}},
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="bodycopy">
|
||||
Welcome to {{site_name}}!. In order to complete your registration , use the number below to complete registration.
|
||||
Welcome to {{site_name}}!. In order to complete your registration , use the number below to complete registration.
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
@@ -103,25 +104,17 @@ Welcome to {{site_name}}!. In order to complete your registration , use the numb
|
||||
<table width="100%" border="0" cellspacing="0" cellpadding="0">
|
||||
<tr>
|
||||
<td class="bodycopy">
|
||||
<b>Enter the number to continue :</b> <h2>{{signup_random}}</h2>
|
||||
<br>
|
||||
For app sign up ,enter the number <b>{{signup_random}}</b> to continue.
|
||||
<hr size="1">
|
||||
For Web sign up , <a href="https://{{server_name}}/vemail?vlnk={{verify_link}}">Click here to verify account</a> to continue.
|
||||
<hr size="1">
|
||||
Or
|
||||
<table class="buttonwrapper" bgcolor="#e05443" border="0" cellspacing="0" cellpadding="0">
|
||||
<tr>
|
||||
<td class="button" height="45" style="align-center;">
|
||||
<a href="https://{{server_name}}/vemail?vlnk={{verify_link}}">Click to Verify Account</a>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="bodycopy" style="color:#ff0033">
|
||||
The Link will expire by {{expire}}
|
||||
Note : The link will expire by:{{expire}}
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
@@ -134,15 +127,10 @@ The Link will expire by {{expire}}
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="innerpadding borderbottom">
|
||||
<img class="fix" src="https://{{server_name}}/assets/images/wrenchboard_email_banner.jpg" width="100%" border="0" alt="" />
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="innerpadding bodycopy">
|
||||
If you did not initiate this account creation or have any further support question, Please contact us at https://{{server_name}}/contact<br>
|
||||
If you did not initiate this account creation or have any further support question, Please contact us at https://www.wrenchboard.com/contact<br>
|
||||
<hr size="1">
|
||||
With <a href="http://{{server_name}}">{{site_name}}</a>, you can enjoy free coordinated skills training section. Empower yourself and be around those that work with latest to update your knowledge.
|
||||
With <a href="http://{{server_name}}">{{site_name}}</a>,you can enjoy free connection to makerplace for all of your ability. We are simply here to empower you..
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
@@ -153,12 +141,12 @@ With <a href="http://{{server_name}}">{{site_name}}</a>, you can enjoy free coor
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="footer" bgcolor="#44525f">
|
||||
<td class="footer">
|
||||
<table width="100%" border="0" cellspacing="0" cellpadding="0">
|
||||
<tr>
|
||||
<td align="center" class="footercopy">
|
||||
® {{site_name}} 2018<br/>
|
||||
You received this email because you subscribe to {{site_name}}. If you get this email in error, please <a href="https://{{server_name}}/contactus" class="unsubscribe"><font color="#ffffff">contact</font></a> us.
|
||||
® {{site_name}} 2022<br/>
|
||||
You received this email because you subscribe to {{site_name}}. If you get this email in error, please <a href="https://www.wrenchboard.com/contact" class="unsubscribe"><font color="#ffffff">contact</font></a> us.
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
@@ -192,8 +180,6 @@ You received this email because you subscribe to {{site_name}}. If you get this
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<!--analytics-->
|
||||
<script src="http://code.jquery.com/jquery-1.10.1.min.js"></script>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
|
||||
@@ -16,17 +16,16 @@ img {height: auto;}
|
||||
.subhead {font-size: 12px; color: #ffffff; font-family: sans-serif; letter-spacing: 3px;}
|
||||
.h1, .h2, .bodycopy {color: #153643; font-family: sans-serif;}
|
||||
.h1 {font-size: 33px; line-height: 38px; font-weight: bold;}
|
||||
.h2 {padding: 0 0 15px 0; font-size: 24px; line-height: 28px; font-weight: bold;}
|
||||
.bodycopy {font-size: 14px; line-height: 20px;}
|
||||
.button {text-align: center; font-size: 16px; font-family: sans-serif; font-weight: bold; padding: 0 30px 0 30px;}
|
||||
.button a {color: #ffffff; text-decoration: none;}
|
||||
.footer {padding: 20px 30px 15px 30px;}
|
||||
.footer {padding: 20px 30px 15px 30px; bgcolor:#007bff; background-color:#007bff;}
|
||||
.footercopy {font-family: sans-serif; font-size: 14px; color: #ffffff;}
|
||||
.footercopy a {color: #ffffff; text-decoration: underline;}
|
||||
</style>
|
||||
</head>
|
||||
|
||||
<body yahoo bgcolor="#f6f8f1">
|
||||
<body bgcolor="#f6f8f1">
|
||||
<table width="100%" bgcolor="#f6f8f1" border="0" cellpadding="0" cellspacing="0">
|
||||
<tr>
|
||||
<td>
|
||||
@@ -44,22 +43,22 @@ img {height: auto;}
|
||||
<tr>
|
||||
<td>
|
||||
<![endif]-->
|
||||
<table class="col425" align="left" border="0" cellpadding="0" cellspacing="0" style="width: 100%; max-width: 425px;">
|
||||
<table class="col425" align="left" border="0" cellpadding="0" cellspacing="0" style="width: 100%; max-width: 600px;">
|
||||
<tr>
|
||||
<td height="50">
|
||||
<table width="100%" border="0" cellspacing="0" cellpadding="0">
|
||||
<table width="100%" border="0" cellspacing="0" cellpadding="0">
|
||||
|
||||
<tr>
|
||||
<td class="h1" style="padding: 5px 0 0 0;">
|
||||
{{site_name}}
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="subhead" style="padding: 0 0 0 3px;">
|
||||
{{site_trade_name}}
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
<tr>
|
||||
<td style="padding: 1px 0 1px 0; text-align:center;">
|
||||
<a href="https://www.wrenchboard.com/"><img src="https://dashboard.wrenchboard.com/assets/ext/images/wrenchboard.png" alt="WrenchBoard"></a> <!-- {{site_name}} -->
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="subhead" style="padding: 0 0 0 3px; text-align:center;">
|
||||
{{site_trade_name}}
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
@@ -74,7 +73,7 @@ img {height: auto;}
|
||||
<td class="innerpadding borderbottom">
|
||||
<table width="100%" border="0" cellspacing="0" cellpadding="0">
|
||||
<tr>
|
||||
<td class="h2">
|
||||
<td class="bodycopy">
|
||||
Hello {{firstname}},
|
||||
</td>
|
||||
</tr>
|
||||
@@ -107,8 +106,8 @@ img {height: auto;}
|
||||
<td style="padding: 20px 0 0 0;">
|
||||
<table class="buttonwrapper" bgcolor="#e05443" border="0" cellspacing="0" cellpadding="0">
|
||||
<tr>
|
||||
<td class="button" height="45">
|
||||
<a href="https://{{server_name}}/complereset?passlink={{pass_link}}">Click to Reset Password</a>
|
||||
<td class="button" height="45" style="text-align:center;" >
|
||||
<a href="{{server_name}}/complereset?passlink={{pass_link}}">Click to Reset Password</a>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
@@ -128,7 +127,7 @@ img {height: auto;}
|
||||
|
||||
<tr>
|
||||
<td class="innerpadding bodycopy">
|
||||
If you did not initiate this password reset or have any further support question, please contact us at https://{{server_name}}/contact
|
||||
If you did not initiate this password reset or have any further support question, please contact us at {{server_name}}/contact
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
@@ -139,47 +138,47 @@ img {height: auto;}
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="footer" bgcolor="#44525f">
|
||||
<table width="100%" border="0" cellspacing="0" cellpadding="0">
|
||||
<tr>
|
||||
<td align="center" class="footercopy">
|
||||
® {{site_name}} 2018<br/>
|
||||
You received this email because you subscribe to {{site_name}}. If you get this email in error, please <a href="https://{{server_name}}/contactus" class="unsubscribe"><font color="#ffffff">contact</font></a> us.
|
||||
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align="center" style="padding: 20px 0 0 0;">
|
||||
<table border="0" cellspacing="0" cellpadding="0">
|
||||
<tr>
|
||||
<td width="37" style="text-align: center; padding: 0 10px 0 10px;">
|
||||
<a href="https://www.facebook.com/wrenchboard/">
|
||||
<img src="https://{{server_name}}/assets/images/brands/facebook.png" width="37" height="37" alt="Facebook" border="0" />
|
||||
</a>
|
||||
</td>
|
||||
<td width="37" style="text-align: center; padding: 0 10px 0 10px;">
|
||||
<a href="https://twitter.com/wrenchboard">
|
||||
<img src="https://{{server_name}}/assets/images/brands/twitter.png" width="37" height="37" alt="Twitter" border="0" />
|
||||
</a>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
<!--[if (gte mso 9)|(IE)]>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
<![endif]-->
|
||||
</td>
|
||||
</tr>
|
||||
<td class="footer">
|
||||
<table width="100%" border="0" cellspacing="0" cellpadding="0">
|
||||
<tr>
|
||||
<td align="center" class="footercopy">
|
||||
® {{site_name}} 2022<br/>
|
||||
You received this email because you subscribe to {{site_name}}. If you get this email in error, please <a href="https://{{server_name}}/contact" class="unsubscribe"><font color="#ffffff">contact</font></a> us.
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align="center" style="padding: 20px 0 0 0;">
|
||||
<table border="0" cellspacing="0" cellpadding="0">
|
||||
<tr>
|
||||
<td width="37" style="text-align: center; padding: 0 10px 0 10px;">
|
||||
<a href="https://www.facebook.com/wrenchboard/">
|
||||
<img src="https://{{server_name}}/assets/images/brands/facebook.png" width="37" height="37" alt="Facebook" border="0" />
|
||||
</a>
|
||||
</td>
|
||||
<td width="37" style="text-align: center; padding: 0 10px 0 10px;">
|
||||
<a href="http://www.twitter.com/">
|
||||
<img src="https://{{server_name}}/assets/images/brands/twitter.png" width="37" height="37" alt="Twitter" border="0" />
|
||||
</a>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
<!--[if (gte mso 9)|(IE)]>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
<![endif]-->
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<!--analytics-->
|
||||
<script src="http://code.jquery.com/jquery-1.10.1.min.js"></script>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -6,42 +6,26 @@ Subject: Welcome to {{site_name}}
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
||||
<title>Welcome to {{site_name}}</title>
|
||||
<style type="text/css">
|
||||
body {margin: 0; padding: 0; min-width: 100%!important;}
|
||||
img {height: auto;}
|
||||
.content {width: 100%; max-width: 600px;}
|
||||
.header {padding: 40px 30px 20px 30px;}
|
||||
.innerpadding {padding: 30px 30px 30px 30px;}
|
||||
.borderbottom {border-bottom: 1px solid #f2eeed;}
|
||||
.subhead {font-size: 12px; color: #ffffff; font-family: sans-serif; letter-spacing: 3px;}
|
||||
.h1, .h2, .bodycopy {color: #153643; font-family: sans-serif;}
|
||||
.h1 {font-size: 33px; line-height: 38px; font-weight: bold;}
|
||||
.h2 {padding: 0 0 15px 0; font-size: 24px; line-height: 28px; font-weight: bold;}
|
||||
.bodycopy {font-size: 16px; line-height: 22px;}
|
||||
.button {text-align: center; font-size: 18px; font-family: sans-serif; font-weight: bold; padding: 0 30px 0 30px;}
|
||||
.button a {color: #ffffff; text-decoration: none;}
|
||||
.footer {padding: 20px 30px 15px 30px;}
|
||||
.footercopy {font-family: sans-serif; font-size: 14px; color: #ffffff;}
|
||||
.footercopy a {color: #ffffff; text-decoration: underline;}
|
||||
|
||||
@media only screen and (max-width: 550px), screen and (max-device-width: 550px) {
|
||||
body[yahoo] .hide {display: none!important;}
|
||||
body[yahoo] .buttonwrapper {background-color: transparent!important;}
|
||||
body[yahoo] .button {padding: 0px!important;}
|
||||
body[yahoo] .button a {background-color: #e05443; padding: 15px 15px 13px!important;}
|
||||
body[yahoo] .unsubscribe {display: block; margin-top: 20px; padding: 10px 50px; background: #2f3942; border-radius: 5px; text-decoration: none!important; font-weight: bold;}
|
||||
}
|
||||
|
||||
/*@media only screen and (min-device-width: 601px) {
|
||||
.content {width: 600px !important;}
|
||||
.col425 {width: 425px!important;}
|
||||
.col380 {width: 380px!important;}
|
||||
}*/
|
||||
|
||||
</style>
|
||||
<style type="text/css">
|
||||
body {margin: 0; padding: 0; min-width: 100%!important;}
|
||||
img {height: auto;}
|
||||
.content {width: 100%; max-width: 600px;}
|
||||
.header {padding: 10px 10px 10px 10px;}
|
||||
.innerpadding {padding: 10px 10px 10px 10px;}
|
||||
.borderbottom {border-bottom: 1px solid #f2eeed;}
|
||||
.subhead {font-size: 12px; color: #ffffff; font-family: sans-serif; letter-spacing: 3px;}
|
||||
.h1, .h2, .bodycopy {color: #153643; font-family: sans-serif;}
|
||||
.h1 {font-size: 33px; line-height: 38px; font-weight: bold;}
|
||||
.bodycopy {font-size: 14px; line-height: 20px;}
|
||||
.button {text-align: center; font-size: 16px; font-family: sans-serif; font-weight: bold; padding: 0 30px 0 30px;}
|
||||
.button a {color: #ffffff; text-decoration: none;}
|
||||
.footer {padding: 20px 30px 15px 30px; bgcolor:#007bff; background-color:#007bff;}
|
||||
.footercopy {font-family: sans-serif; font-size: 14px; color: #ffffff;}
|
||||
.footercopy a {color: #ffffff; text-decoration: underline;}
|
||||
</style>
|
||||
</head>
|
||||
|
||||
<body yahoo bgcolor="#f6f8f1">
|
||||
<body bgcolor="#f6f8f1">
|
||||
<table width="100%" bgcolor="#f6f8f1" border="0" cellpadding="0" cellspacing="0">
|
||||
<tr>
|
||||
<td>
|
||||
@@ -53,42 +37,20 @@ Subject: Welcome to {{site_name}}
|
||||
<table bgcolor="#ffffff" class="content" align="center" cellpadding="0" cellspacing="0" border="0">
|
||||
<tr>
|
||||
<td bgcolor="#c7d8a7" class="header">
|
||||
<table width="70" align="left" border="0" cellpadding="0" cellspacing="0">
|
||||
<tr>
|
||||
<td height="70" style="padding: 0 20px 20px 0;">
|
||||
<img class="fix" src="https://{{server_name}}/assets/images/wrenchboard-icon.gif" width="70" height="70" border="0" alt="WrenchBoard" />
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
<!--[if (gte mso 9)|(IE)]>
|
||||
<table width="425" align="left" cellpadding="0" cellspacing="0" border="0">
|
||||
<tr>
|
||||
<td>
|
||||
<![endif]-->
|
||||
<table class="col425" align="left" border="0" cellpadding="0" cellspacing="0" style="width: 100%; max-width: 425px;">
|
||||
<tr>
|
||||
<td height="50">
|
||||
<table width="100%" border="0" cellspacing="0" cellpadding="0">
|
||||
<table width="100%" border="0" cellspacing="0" cellpadding="0">
|
||||
|
||||
<tr>
|
||||
<td class="h1" style="padding: 5px 0 0 0;">
|
||||
{{site_name}}
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="subhead" style="padding: 0 0 0 3px;">
|
||||
{{site_trade_name}}
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
<!--[if (gte mso 9)|(IE)]>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
<![endif]-->
|
||||
<tr>
|
||||
<td style="padding: 1px 0 1px 0; text-align:center;">
|
||||
<a href="https://www.wrenchboard.com/"><img src="https://dashboard.wrenchboard.com/assets/ext/images/wrenchboard.png" alt="WrenchBoard"></a> <!-- {{site_name}} -->
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="subhead" style="padding: 0 0 0 3px; text-align:center;">
|
||||
{{site_trade_name}}
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
@@ -160,11 +122,11 @@ With <a href="http://{{server_name}}">{{site_name}}</a>, you can enjoy free coor
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="footer" bgcolor="#44525f">
|
||||
<td class="footer">
|
||||
<table width="100%" border="0" cellspacing="0" cellpadding="0">
|
||||
<tr>
|
||||
<td align="center" class="footercopy">
|
||||
® {{site_name}} 2017<br/>
|
||||
® {{site_name}} 2022<br/>
|
||||
You received this email because you subscribe to {{site_name}}. If you get this email in error, please <a href="https://{{server_name}}/contactus" class="unsubscribe"><font color="#ffffff">contact</font></a> us.
|
||||
|
||||
</td>
|
||||
@@ -199,8 +161,5 @@ With <a href="http://{{server_name}}">{{site_name}}</a>, you can enjoy free coor
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<!--analytics-->
|
||||
<script src="http://code.jquery.com/jquery-1.10.1.min.js"></script>
|
||||
</body>
|
||||
</html>
|
||||
@@ -1,192 +1,162 @@
|
||||
Subject: WrenchBoard Signup Report
|
||||
|
||||
Subject: WrenchBoard Signup Report {{site_name}}
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml">
|
||||
|
||||
|
||||
<head>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
||||
<title>WrenchBoard Signup Report</title>
|
||||
<style type="text/css">
|
||||
body {margin: 0; padding: 0; min-width: 100%!important;}
|
||||
img {height: auto;}
|
||||
.content {width: 100%; max-width: 600px;}
|
||||
.header {padding: 40px 30px 20px 30px;}
|
||||
.innerpadding {padding: 30px 30px 30px 30px;}
|
||||
.borderbottom {border-bottom: 1px solid #f2eeed;}
|
||||
.subhead {font-size: 12px; color: #ffffff; font-family: sans-serif; letter-spacing: 3px;}
|
||||
.h1, .h2, .bodycopy {color: #153643; font-family: sans-serif;}
|
||||
.h1 {font-size: 33px; line-height: 38px; font-weight: bold;}
|
||||
.h2 {padding: 0 0 15px 0; font-size: 24px; line-height: 28px; font-weight: bold;}
|
||||
.bodycopy {font-size: 14px; line-height: 20px;}
|
||||
.button {text-align: center; font-size: 16px; font-family: sans-serif; font-weight: bold; padding: 0 30px 0 30px;}
|
||||
.button a {color: #ffffff; text-decoration: none;}
|
||||
.footer {padding: 20px 30px 15px 30px;}
|
||||
.footercopy {font-family: sans-serif; font-size: 14px; color: #ffffff;}
|
||||
.footercopy a {color: #ffffff; text-decoration: underline;}
|
||||
|
||||
@media only screen and (max-width: 550px), screen and (max-device-width: 550px) {
|
||||
body[yahoo] .hide {display: none!important;}
|
||||
body[yahoo] .buttonwrapper {background-color: transparent!important;}
|
||||
body[yahoo] .button {padding: 0px!important;}
|
||||
body[yahoo] .button a {background-color: #e05443; padding: 15px 15px 13px!important;}
|
||||
body[yahoo] .unsubscribe {display: block; margin-top: 20px; padding: 10px 50px; background: #2f3942; border-radius: 5px; text-decoration: none!important; font-weight: bold;}
|
||||
}
|
||||
|
||||
/*@media only screen and (min-device-width: 601px) {
|
||||
.content {width: 600px !important;}
|
||||
.col425 {width: 425px!important;}
|
||||
.col380 {width: 380px!important;}
|
||||
}*/
|
||||
|
||||
</style>
|
||||
<meta charset="utf-8">
|
||||
<title>WrenchBoard Signup Report {{site_name}}</title>
|
||||
<style type="text/css">
|
||||
body {margin: 0; padding: 0; min-width: 100%!important;}
|
||||
img {height: auto;}
|
||||
.content {width: 100%; max-width: 600px;}
|
||||
.header {padding: 10px 10px 10px 10px;}
|
||||
.innerpadding {padding: 10px 10px 10px 10px;}
|
||||
.borderbottom {border-bottom: 1px solid #f2eeed;}
|
||||
.subhead {font-size: 12px; color: #ffffff; font-family: sans-serif; letter-spacing: 3px;}
|
||||
.h1, .h2, .bodycopy {color: #153643; font-family: sans-serif;}
|
||||
.h1 {font-size: 33px; line-height: 38px; font-weight: bold;}
|
||||
.bodycopy {font-size: 14px; line-height: 20px;}
|
||||
.trColor { background-color:#D2F7F4;}
|
||||
.button {text-align: center; font-size: 16px; font-family: sans-serif; font-weight: bold; padding: 0 30px 0 30px;}
|
||||
.button a {color: #ffffff; text-decoration: none;}
|
||||
.footer {padding: 20px 30px 15px 30px; bgcolor:#007bff; background-color:#007bff;}
|
||||
.footercopy {font-family: sans-serif; font-size: 14px; color: #ffffff;}
|
||||
.footercopy a {color: #ffffff; text-decoration: underline;}
|
||||
</style>
|
||||
</head>
|
||||
|
||||
<body yahoo bgcolor="#f6f8f1">
|
||||
<body bgcolor="#f6f8f1">
|
||||
<table width="100%" bgcolor="#f6f8f1" border="0" cellpadding="0" cellspacing="0">
|
||||
<tr>
|
||||
<td>
|
||||
<!--[if (gte mso 9)|(IE)]>
|
||||
<table width="600" align="center" cellpadding="0" cellspacing="0" border="0">
|
||||
<tr>
|
||||
<td>
|
||||
<![endif]-->
|
||||
<table bgcolor="#ffffff" class="content" align="center" cellpadding="0" cellspacing="0" border="0">
|
||||
<tr>
|
||||
<td bgcolor="#c7d8a7" class="header">
|
||||
<table width="70" align="left" border="0" cellpadding="0" cellspacing="0">
|
||||
<tr>
|
||||
<td height="70" style="padding: 0 20px 20px 0;">
|
||||
<img class="fix" src="https://{{server_name}}/assets/images/wrenchboard-icon.gif" width="70" height="70" border="0" alt="WrenchBoard" />
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
<!--[if (gte mso 9)|(IE)]>
|
||||
<table width="425" align="left" cellpadding="0" cellspacing="0" border="0">
|
||||
<tr>
|
||||
<td>
|
||||
<![endif]-->
|
||||
<table class="col425" align="left" border="0" cellpadding="0" cellspacing="0" style="width: 100%; max-width: 425px;">
|
||||
<tr>
|
||||
<td height="50">
|
||||
<table width="100%" border="0" cellspacing="0" cellpadding="0">
|
||||
|
||||
<tr>
|
||||
<td class="h1" style="padding: 5px 0 0 0;">
|
||||
{{site_name}}
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="subhead" style="padding: 0 0 0 3px;">
|
||||
{{site_trade_name}}
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
<!--[if (gte mso 9)|(IE)]>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
<![endif]-->
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td class="innerpadding borderbottom">
|
||||
<table width="115" align="left" border="0" cellpadding="0" cellspacing="0">
|
||||
<tr>
|
||||
<td height="115" style="padding: 0 20px 20px 0;">
|
||||
<img class="fix" src="https://{{server_name}}/assets/images/article1.png" width="115" height="115" border="0" alt="" />
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
<!--[if (gte mso 9)|(IE)]>
|
||||
<table width="380" align="left" cellpadding="0" cellspacing="0" border="0">
|
||||
<td>
|
||||
<!--[if (gte mso 9)|(IE)]>
|
||||
<table width="600" align="center" cellpadding="0" cellspacing="0" border="0">
|
||||
<tr>
|
||||
<td>
|
||||
<![endif]-->
|
||||
|
||||
<table class="col380" align="left" border="0" cellpadding="0" cellspacing="0" style="width: 100%; max-width: 380px;">
|
||||
<tr><td colspan="2"><h2>{{report_date}}</h2></td></tr>
|
||||
<tr>
|
||||
<td class="left" style="width:100px">Today Sign-up</td>
|
||||
<td class="bodycopy"><h1>{{today_signup}}</h1>People that completed the sign-up</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="left" style="width:100px">Pending Sign-up</td>
|
||||
<td class="bodycopy"><h2>{{today_pending_signup}}</h2>-People still in the process not completed</td>
|
||||
</tr>
|
||||
</table>
|
||||
<table bgcolor="#ffffff" class="content" align="center" cellpadding="0" cellspacing="0" border="0">
|
||||
<tr>
|
||||
<td bgcolor="#c7d8a7" class="header">
|
||||
<!--[if (gte mso 9)|(IE)]>
|
||||
<table width="100%" align="left" cellpadding="0" cellspacing="0" border="0">
|
||||
<tr>
|
||||
<td>
|
||||
<![endif]-->
|
||||
<table align="left" border="0" cellpadding="0" cellspacing="0" style="width: 100%; max-width: 600px;">
|
||||
<tr>
|
||||
<td height="30" border="0" style="text-align:center;">
|
||||
<table width="100%" border="0" cellspacing="0" cellpadding="0">
|
||||
|
||||
<tr>
|
||||
<td style="padding: 1px 0 1px 0; text-align:center;">
|
||||
<a href="https://www.wrenchboard.com/"><img src="https://dashboard.wrenchboard.com/assets/ext/images/wrenchboard.png" alt="WrenchBoard"></a> <!-- {{site_name}} -->
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><h4>Please <a href ="https://{{server_name}}/bko">login</a> into BackOffice from authorized system to support the user.</h4>
|
||||
<td class="subhead" style="padding: 0 0 0 3px; text-align:center;">
|
||||
{{site_trade_name}}
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
<!--[if (gte mso 9)|(IE)]>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
<![endif]-->
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="innerpadding borderbottom">
|
||||
<img class="fix" src="https://{{server_name}}/assets/images/wrenchboard_email_banner.jpg" width="100%" border="0" alt="" />
|
||||
</td>
|
||||
</tr>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
<![endif]-->
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td class="innerpadding bodycopy">
|
||||
<tr>
|
||||
<td class="innerpadding borderbottom">
|
||||
|
||||
<table align="left" border="1" cellpadding="0" cellspacing="0" style="width: 100%; max-width: 600px;">
|
||||
<tr>
|
||||
<td colspan="2"><h2>{{report_date}}</h2></td></tr>
|
||||
<tr>
|
||||
<td class="left" style="width:250px">Today Sign-up<h5>People that completed the sign-up</h5></td>
|
||||
<td class="bodycopy"><h1>{{today_signup}}</h1></td>
|
||||
</tr>
|
||||
<tr class="trColor">
|
||||
<td class="left" style="width:250px">Pending Sign-up<h5>People still in the process not completed</h5></td>
|
||||
<td class="bodycopy"><h2>{{today_pending_signup}}</h2></td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td colspan="2"><h2>{{report_date}}</h2></td></tr>
|
||||
<tr>
|
||||
<td class="left" style="width:250px">Active Jobs<h5>People that completed the sign-up</h5></td>
|
||||
<td class="bodycopy"><h1>{{today_signup}}</h1></td>
|
||||
</tr>
|
||||
<tr class="trColor">
|
||||
<td class="left" style="width:250px">Expired Jobs<h5>People still in the process not completed</h5></td>
|
||||
<td class="bodycopy"><h2>{{today_pending_signup}}</h2></td>
|
||||
</tr>
|
||||
|
||||
</table>
|
||||
|
||||
<h4>Please <a href ="https://{{server_name}}/bko">login</a> into BackOffice from authorized system to support the user.</h4>
|
||||
|
||||
<!--[if (gte mso 9)|(IE)]>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
<![endif]-->
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="innerpadding bodycopy">
|
||||
{{site_name}} Team
|
||||
<br>
|
||||
{{server_name}}
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="footer" bgcolor="#44525f">
|
||||
<table width="100%" border="0" cellspacing="0" cellpadding="0" >
|
||||
<tr>
|
||||
<td align="center" class="footercopy">
|
||||
® {{site_name}} 2017<br/>
|
||||
You received this email because you are a support user for {{site_name}}. If you get this email in error, please <a href="https://{{server_name}}/contactus" class="unsubscribe"><font color="#ffffff">contact</font></a> us.
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align="center" style="padding: 20px 0 0 0;">
|
||||
<table border="0" cellspacing="0" cellpadding="0">
|
||||
<tr>
|
||||
<td width="37" style="text-align: center; padding: 0 10px 0 10px;">
|
||||
<a href="https://www.facebook.com/wrenchboard/">
|
||||
<img src="https://{{server_name}}/assets/images/brands/facebook.png" width="37" height="37" alt="Facebook" border="0" />
|
||||
</a>
|
||||
</td>
|
||||
<td width="37" style="text-align: center; padding: 0 10px 0 10px;">
|
||||
<a href="https://twitter.com/wrenchboard">
|
||||
<img src="https://{{server_name}}/assets/images/brands/twitter.png" width="37" height="37" alt="Twitter" border="0" />
|
||||
</a>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
<!--[if (gte mso 9)|(IE)]>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
<![endif]-->
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
<tr><td>
|
||||
|
||||
<!--analytics-->
|
||||
<script src="http://code.jquery.com/jquery-1.10.1.min.js"></script>
|
||||
<tr>
|
||||
<td>
|
||||
<table width="100%" border="0" cellspacing="0" cellpadding="0">
|
||||
<tr>
|
||||
<td class="footer">
|
||||
<table width="100%" border="0" cellspacing="0" cellpadding="0">
|
||||
<tr>
|
||||
<td align="center" class="footercopy">
|
||||
® {{site_name}} 2022<br/>
|
||||
You received this email because you subscribe to {{site_name}}. If you get this email in error, please <a href="https://{{server_name}}/contact" class="unsubscribe"><font color="#ffffff">contact</font></a> us.
|
||||
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align="center" style="padding: 20px 0 0 0;">
|
||||
<table border="0" cellspacing="0" cellpadding="0">
|
||||
<tr>
|
||||
<td width="37" style="text-align: center; padding: 0 10px 0 10px;">
|
||||
<a href="https://www.facebook.com/wrenchboard/">
|
||||
<img src="https://{{server_name}}/assets/images/brands/facebook.png" width="37" height="37" alt="Facebook" border="0" />
|
||||
</a>
|
||||
</td>
|
||||
<td width="37" style="text-align: center; padding: 0 10px 0 10px;">
|
||||
<a href="https://twitter.com/wrenchboard">
|
||||
<img src="https://{{server_name}}/assets/images/brands/twitter.png" width="37" height="37" alt="Twitter" border="0" />
|
||||
</a>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
<!--[if (gte mso 9)|(IE)]>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
<![endif]-->
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</body>
|
||||
</html>
|
||||
@@ -11,20 +11,17 @@ body {margin: 0; padding: 0; min-width: 100%!important;}
|
||||
img {height: auto;}
|
||||
.content {width: 100%; max-width: 600px;}
|
||||
.header {padding: 10px 10px 10px 10px;}
|
||||
.innerpadding {padding: 30px 30px 30px 30px;}
|
||||
.innerpadding {padding: 10px 10px 10px 10px;}
|
||||
.borderbottom {border-bottom: 1px solid #f2eeed;}
|
||||
.subhead {font-size: 12px; color: #ffffff; font-family: sans-serif; letter-spacing: 3px;}
|
||||
.h1, .h2, .bodycopy {color: #153643; font-family: sans-serif;}
|
||||
.h1 {font-size: 33px; line-height: 38px; font-weight: bold;}
|
||||
.h2 {padding: 0 0 15px 0; font-size: 24px; line-height: 28px; font-weight: bold;}
|
||||
.bodycopy {font-size: 14px; line-height: 20px;}
|
||||
.button {text-align: center; font-size: 16px; font-family: sans-serif; font-weight: bold; padding: 0 30px 0 30px;}
|
||||
.button a {color: #ffffff; text-decoration: none;}
|
||||
.footer {padding: 20px 30px 15px 30px;}
|
||||
.footer {padding: 20px 30px 15px 30px; bgcolor:#007bff; background-color:#007bff;}
|
||||
.footercopy {font-family: sans-serif; font-size: 14px; color: #ffffff;}
|
||||
.footercopy a {color: #ffffff; text-decoration: underline;}
|
||||
|
||||
|
||||
</style>
|
||||
</head>
|
||||
|
||||
@@ -52,8 +49,8 @@ img {height: auto;}
|
||||
<table width="100%" border="0" cellspacing="0" cellpadding="0">
|
||||
|
||||
<tr>
|
||||
<td class="h1" style="padding: 5px 0 0 0;">
|
||||
{{site_name}}
|
||||
<td style="padding: 1px 0 1px 0; text-align:center;">
|
||||
<a href="https://www.wrenchboard.com/"><img src="https://dashboard.wrenchboard.com/assets/ext/images/wrenchboard.png" alt="WrenchBoard"></a>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
@@ -75,13 +72,6 @@ img {height: auto;}
|
||||
|
||||
<tr>
|
||||
<td class="innerpadding borderbottom">
|
||||
<table width="115" align="left" border="0" cellpadding="0" cellspacing="0">
|
||||
<tr>
|
||||
<td height="115" style="padding: 0 20px 20px 0;">
|
||||
<img class="fix" src="https://{{server_name}}/assets/images/article1.png" width="115" height="115" border="0" alt="" />
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
<!--[if (gte mso 9)|(IE)]>
|
||||
<table width="380" align="left" cellpadding="0" cellspacing="0" border="0">
|
||||
<tr>
|
||||
@@ -94,8 +84,10 @@ img {height: auto;}
|
||||
<td>
|
||||
<table width="100%" border="0" cellspacing="1" cellpadding="0" class="bodycopy" style="font-size: 14px; font-family: sans-serif; border: 1px solid #f2eeed; background-color:#e6f9ff;">
|
||||
<tr >
|
||||
<td colspan="2"><h3>Signup Pending-{{added}}</h3></td>
|
||||
<td class="left" style="width:100px">Signup Pending</td>
|
||||
<td class="bodycopy">{{added}}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
|
||||
<tr >
|
||||
<td class="left" style="width:100px">Firstname</td>
|
||||
@@ -125,15 +117,14 @@ img {height: auto;}
|
||||
<td class="bodycopy">{{verify_link}}</td>
|
||||
</tr>
|
||||
|
||||
<tr >
|
||||
<td class="left" colspan="2">Please <a href ="https://{{server_name}}/bko">login</a> into BackOffice from authorized system to support the user.</td>
|
||||
</tr>
|
||||
|
||||
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><h4>Please <a href ="https://{{server_name}}/bko">login</a> into BackOffice from authorized system to support the user.</h4>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
<!--[if (gte mso 9)|(IE)]>
|
||||
</td>
|
||||
@@ -144,7 +135,7 @@ img {height: auto;}
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="innerpadding borderbottom">
|
||||
<img class="fix" src="https://{{server_name}}/assets/images/wrenchboard_email_banner.jpg" width="100%" border="0" alt="" />
|
||||
<img class="fix" src="https://dashboard.wrenchboard.com/assets/images/wrenchboard_email_banner.jpg" width="100%" border="0" alt="" />
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
@@ -156,11 +147,11 @@ img {height: auto;}
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="footer" bgcolor="#44525f">
|
||||
<td class="footer">
|
||||
<table width="100%" border="0" cellspacing="0" cellpadding="0" >
|
||||
<tr>
|
||||
<td align="center" class="footercopy">
|
||||
® {{site_name}} 2017<br/>
|
||||
® {{site_name}} 2022<br/>
|
||||
You received this email because you are a support user for {{site_name}}. If you get this email in error, please <a href="https://{{server_name}}/contactus" class="unsubscribe"><font color="#ffffff">contact</font></a> us.
|
||||
</td>
|
||||
</tr>
|
||||
@@ -196,6 +187,5 @@ You received this email because you are a support user for {{site_name}}. If you
|
||||
</table>
|
||||
|
||||
<!--analytics-->
|
||||
<script src="http://code.jquery.com/jquery-1.10.1.min.js"></script>
|
||||
</body>
|
||||
</html>
|
||||
@@ -16,16 +16,12 @@ img {height: auto;}
|
||||
.subhead {font-size: 12px; color: #ffffff; font-family: sans-serif; letter-spacing: 3px;}
|
||||
.h1, .h2, .bodycopy {color: #153643; font-family: sans-serif;}
|
||||
.h1 {font-size: 33px; line-height: 38px; font-weight: bold;}
|
||||
.h2 {padding: 0 0 15px 0; font-size: 24px; line-height: 28px; font-weight: bold;}
|
||||
.bodycopy {font-size: 14px; line-height: 20px;}
|
||||
.button {text-align: center; font-size: 16px; font-family: sans-serif; font-weight: bold; padding: 0 30px 0 30px;}
|
||||
.button a {color: #ffffff; text-decoration: none;}
|
||||
.footer {padding: 20px 30px 15px 30px;}
|
||||
.footer {padding: 20px 30px 15px 30px; bgcolor:#007bff; background-color:#007bff;}
|
||||
.footercopy {font-family: sans-serif; font-size: 14px; color: #ffffff;}
|
||||
.footercopy a {color: #ffffff; text-decoration: underline;}
|
||||
|
||||
|
||||
</style>
|
||||
</style>
|
||||
</head>
|
||||
|
||||
@@ -47,18 +43,18 @@ img {height: auto;}
|
||||
<tr>
|
||||
<td>
|
||||
<![endif]-->
|
||||
<table class="col425" align="left" border="0" cellpadding="0" cellspacing="0" style="width: 100%; max-width: 425px;">
|
||||
<table class="col425" align="left" border="0" cellpadding="0" cellspacing="0" style="width: 100%; max-width: 600px;">
|
||||
<tr>
|
||||
<td height="50">
|
||||
<table width="100%" border="0" cellspacing="0" cellpadding="0">
|
||||
|
||||
<tr>
|
||||
<td class="h1" style="padding: 5px 0 0 0;">
|
||||
{{site_name}}
|
||||
<td style="padding: 1px 0 1px 0; text-align:center;">
|
||||
<a href="https://www.wrenchboard.com/"><img src="https://dashboard.wrenchboard.com/assets/ext/images/wrenchboard.png" alt="WrenchBoard"></a>
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="subhead" style="padding: 0 0 0 3px;">
|
||||
<td class="subhead" style="padding: 0 0 0 3px; text-align:center;">
|
||||
{{site_trade_name}}
|
||||
</td>
|
||||
</tr>
|
||||
@@ -77,7 +73,7 @@ img {height: auto;}
|
||||
<td class="innerpadding borderbottom">
|
||||
<table width="100%" border="0" cellspacing="0" cellpadding="0">
|
||||
<tr>
|
||||
<td class="h2">
|
||||
<td class="bodycopy">
|
||||
Dear {{firstname}},
|
||||
</td>
|
||||
</tr>
|
||||
@@ -95,7 +91,7 @@ You have posted a job offer at <a href="https://{{server_name}}">{{site_name}}</
|
||||
<table width="115" align="left" border="0" cellpadding="0" cellspacing="0">
|
||||
<tr>
|
||||
<td height="115" style="padding: 0 20px 20px 0;">
|
||||
<img class="fix" src="https://{{server_name}}/assets/images/article1.png" width="115" height="115" border="0" alt="" />
|
||||
<img class="fix" src="https://dashboard.wrenchboard.com/assets/images/article1.png" width="115" height="115" border="0" alt="" />
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
@@ -186,7 +182,7 @@ Offer Expire
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="innerpadding borderbottom">
|
||||
<img class="fix" src="https://{{server_name}}/assets/images/wrenchboard_email_banner.jpg" width="100%" border="0" alt="" />
|
||||
<img class="fix" src="https://dashboard.wrenchboard.com/assets/images/wrenchboard_email_banner.jpg" width="100%" border="0" alt="" />
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
@@ -202,12 +198,12 @@ Please contact us at https://{{server_name}}/contact if you have any question a
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td class="footer" bgcolor="#44525f">
|
||||
<td class="footer">
|
||||
<table width="100%" border="0" cellspacing="0" cellpadding="0" >
|
||||
<tr>
|
||||
<td align="center" class="footercopy">
|
||||
® {{site_name}} 2018<br/>
|
||||
You received this email because a user sent a job to you from {{site_name}}. If you get this email in error, please <a href="https://{{server_name}}/contactus" class="unsubscribe"><font color="#ffffff">contact</font></a> us.
|
||||
® {{site_name}} 2022<br/>
|
||||
You received this email because a user sent a job to you from {{site_name}}. If you get this email in error, please <a href="https://{{server_name}}/contact" class="unsubscribe"><font color="#ffffff">contact</font></a> us.
|
||||
</td>
|
||||
</tr>
|
||||
<tr>
|
||||
@@ -242,6 +238,5 @@ Please contact us at https://{{server_name}}/contact if you have any question a
|
||||
</table>
|
||||
|
||||
<!--analytics-->
|
||||
<script src="http://code.jquery.com/jquery-1.10.1.min.js"></script>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
@@ -46,13 +46,16 @@ Paypal:
|
||||
|
||||
stripe:
|
||||
{
|
||||
publishable_key = "pk_test_X7TylEk9BkZCarcj0FyKRYXc";
|
||||
secret_key = "sk_test_MA2ltfGlT70Nu7uWlmHowBRB";
|
||||
publishable_key = "pk_test_51JwvOXCMmfol61TL2IlTEWytKObMLrZTAxJRHdepqWggXm4ENMyrrnR5dxfd5cPeflvCUG1HsErQI43BjOAmUEh500N0FWOZoE";
|
||||
old_publishable_key ="pk_test_X7TylEk9BkZCarcj0FyKRYXc";
|
||||
secret_key = "sk_test_51JwvOXCMmfol61TLadZlDf2rxq6Q1IC50JITRixcbyig8T2zdqpO8HY2NEcwNHacRQKQpTf6JGh7haqUVEH0rccA00eFht1ewi";
|
||||
old_secret_key = "sk_test_MA2ltfGlT70Nu7uWlmHowBRB";
|
||||
};
|
||||
|
||||
database:
|
||||
{
|
||||
host = "127.0.0.1";
|
||||
#- using docker 10.23 host = "127.0.0.1";
|
||||
host = "10.10.10.23";
|
||||
name = "wrenchboard";
|
||||
user = "wrenchboard";
|
||||
pass = "wrenchboard";
|
||||
@@ -105,10 +108,10 @@ paylid:
|
||||
|
||||
transnotif:
|
||||
{
|
||||
contact = "ses66181@gmail.com,support@wrenchboard.com,ameye@fluxtra.net";
|
||||
topupemail = "ses66181@gmail.com,ameye@chiefsoft.com";
|
||||
signupreport ="ses66181+signup@gmail.com";
|
||||
topalert = "demo@myexperiencenow.com";
|
||||
contact = "ses66181+contact@gmail.com,support+contact@wrenchboard.com,tokslaw+contact@chiefsoft.com";
|
||||
topupemail = "ses66181@gmail.com,ameye@chiefsoft.com,tokslaw+signup@chiefsoft.com";
|
||||
signupreport ="ses66181+signup@gmail.com,tokslaw+signup@chiefsoft.com";
|
||||
topalert = "ses66181+alert@gmail.com,tokslaw+alert@chiefsoft.com";
|
||||
};
|
||||
|
||||
webpay:
|
||||
|
||||
@@ -10,11 +10,11 @@ generated by GNU Autoconf 2.69. Invocation command line was
|
||||
## Platform. ##
|
||||
## --------- ##
|
||||
|
||||
hostname = localhost.localdomain
|
||||
hostname = WrenchBoardDev
|
||||
uname -m = x86_64
|
||||
uname -r = 4.18.0-193.el8.x86_64
|
||||
uname -r = 4.18.0-193.14.2.el8_2.x86_64
|
||||
uname -s = Linux
|
||||
uname -v = #1 SMP Fri May 8 10:59:10 UTC 2020
|
||||
uname -v = #1 SMP Sun Jul 26 03:54:29 UTC 2020
|
||||
|
||||
/usr/bin/uname -p = x86_64
|
||||
/bin/uname -X = unknown
|
||||
@@ -534,10 +534,9 @@ generated by GNU Autoconf 2.69. Invocation command line was
|
||||
CONFIG_COMMANDS =
|
||||
$ ./config.status
|
||||
|
||||
on localhost.localdomain
|
||||
on WrenchBoardDev
|
||||
|
||||
config.status:944: creating config.h
|
||||
config.status:1034: config.h is unchanged
|
||||
config.status:1048: executing libtool commands
|
||||
|
||||
## ---------------- ##
|
||||
|
||||
@@ -117,7 +117,7 @@ int SMTP2( const char * _server, const char * _from, char * _to, char * _body, c
|
||||
}
|
||||
|
||||
// Google
|
||||
snprintf( name, BUF_SIZE, EMAIL_PREFIX"/../src/modules/mailsend -smtp %s -f %s -t %s -domain %s -name '%s' +cc +bcc -v -starttls -port 587 -auth-plain -user %s -pass %s -sub '%s' -content-type 'text/html' -mime-type 'text/html' -M '%s'",
|
||||
snprintf( name, BUF_SIZE, EMAIL_PREFIX"/../src/modules/mailsend -smtp %s -f %s -t %s -domain %s -name '%s' +cc +bcc -v -starttls -port 587 -auth-plain -user %s -pass %s -sub '%s' -content-type 'multipart/mixed' -mime-type 'text/html' -disposition inline -M '%s'",
|
||||
_server, _from, _to, _domain, _name, _user, _pass, subject, body != NULL ? body : _body );
|
||||
/*
|
||||
// Virtualmail
|
||||
|
||||
@@ -8,6 +8,8 @@ long account_calls(CVars in, CVars &out);
|
||||
|
||||
long LoginWrenchBoardAccount( CVars in, CVars &out );
|
||||
long LoginWrenchBoardFacebook( CVars in, CVars &out );
|
||||
long LoginWrenchBoardGoogle( CVars in, CVars &out );
|
||||
long LoginWrenchBoardExternal( CVars in, CVars &out );
|
||||
long SessionCheck(long uid, const char *sessionid, int create );
|
||||
long account_session_check(CVars in, CVars out);
|
||||
long VerifySession(CVars in, CVars &out);
|
||||
|
||||
@@ -9,5 +9,11 @@ long WrenchRefundoffer( CVars in, CVars &out );
|
||||
long WrenchContractPayment( CVars in, CVars &out );
|
||||
long WrenchCanceContractPayment( CVars in, CVars &out );
|
||||
|
||||
|
||||
long WrenchNewCardPayment( CVars in, CVars &out );
|
||||
long WrenchCardRechargePayment( CVars in, CVars &out );
|
||||
long CheckWallet(long member_id,CVars in);
|
||||
long DeductMemberWallet(long member_id,long wallet_id,long amount, long payment_id);
|
||||
|
||||
#endif
|
||||
|
||||
|
||||
@@ -144,6 +144,7 @@ enum { PARTNER_STRIPE };
|
||||
#define WRENCHBOARD_ACCOUNT_CREATEACC 11020
|
||||
#define WRENCHBOARD_ACCOUNT_LOGIN 11025
|
||||
#define WRENCHBOARD_FACEBOOK_LOGIN 11026
|
||||
#define WRENCHBOARD_GOOGLE_LOGIN 11027
|
||||
#define WRENCHBOARD_START_JOBLIST 11028
|
||||
#define WRENCHBOARD_ACCOUNT_DASHDATA 11029
|
||||
|
||||
@@ -167,6 +168,13 @@ enum { PARTNER_STRIPE };
|
||||
#define WRENCHBOARD_USER_SENDMONEY 11051
|
||||
#define WRENCHBOARD_USER_SENDJOBINT 11052
|
||||
|
||||
#define WRENCHBOARD_USER_ADNEWCC 11054
|
||||
#define WRENCHBOARD_USER_USESAVEDCC 11056
|
||||
#define WRENCHBOARD_USER_SETTINGS 11058
|
||||
|
||||
#define WRENCHBOARD_ACCOUNT_WALLETS 11060
|
||||
|
||||
#define WRENCHBOARD_USER_DELETEACC 11990
|
||||
#define WRENCHBOARD_ACCOUNT_END 11999
|
||||
//**************************************************************
|
||||
#define WRENCHBOARD_GROUP_START 12000
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
#! /bin/sh
|
||||
# Generated automatically by config.status ()
|
||||
# Libtool was configured on host localhost.localdomain:
|
||||
# Libtool was configured on host WrenchBoardDev:
|
||||
# NOTE: Changes made to this file will be lost: look at ltmain.sh.
|
||||
|
||||
# Provide generalized library-building support services.
|
||||
|
||||
@@ -13,6 +13,8 @@
|
||||
#include <curl/curl.h>
|
||||
#include "smoney.h"
|
||||
#include "account_mngt.h"
|
||||
#include "creditcards.h"
|
||||
#include "payments.h"
|
||||
|
||||
#include "jobs.h"
|
||||
|
||||
@@ -109,6 +111,7 @@ created timestamp without time zone DEFAULT now()
|
||||
long WrenchBoardMobileSendMoney(CVars in, CVars &out);
|
||||
long WrenchBoardMobileSendJobInterest(CVars in, CVars &out);
|
||||
long WrenchReturnPendingJobList(CVars in, CVars &out);
|
||||
long WrenchBoardMobileSendUserWallet(CVars in, CVars &out);
|
||||
|
||||
long test() {
|
||||
FILE* oldFile = Output2FILE::Stream();
|
||||
@@ -130,8 +133,10 @@ long account_calls(CVars in, CVars &out) {
|
||||
CVars x;
|
||||
long ret = 0;
|
||||
const char * loc = getenv("REMOTE_ADDR");
|
||||
|
||||
test();
|
||||
const PGresult *res;
|
||||
logfmt(logINFO, "action = %ld", action);
|
||||
logfmt(logINFO, "google = %ld", WRENCHBOARD_GOOGLE_LOGIN);
|
||||
//test();
|
||||
|
||||
switch (action) {
|
||||
case WRENCHBOARD_CREATE_MOBILEUSER:
|
||||
@@ -143,7 +148,7 @@ test();
|
||||
break;
|
||||
|
||||
case WRENCHBOARD_RESET_PASSWORD:
|
||||
|
||||
return WrenchResetMemberPass(in, out);
|
||||
break;
|
||||
|
||||
case WRENCHBOARD_MOBILE_MESSAGE:
|
||||
@@ -172,7 +177,7 @@ test();
|
||||
REQ_STRING(in, "email", 5, 49, "(.*)");
|
||||
REQ_STRING(in, "firstname", 1, 49, "(.*)");
|
||||
REQ_STRING(in, "lastname", 1, 40, "(.*)");
|
||||
REQ_STRING(in, "your_message", 4, 400, "(.*)");
|
||||
REQ_STRING(in, "your_message", 4, 400, "(.*)");
|
||||
//OPTIONAL( in, "loc" ) REQ_STRING (in, "loc", 3, 15, "(.*)");
|
||||
|
||||
in["loc"] = loc;
|
||||
@@ -209,6 +214,10 @@ test();
|
||||
return LoginWrenchBoardFacebook(in, out);
|
||||
break;
|
||||
|
||||
case WRENCHBOARD_GOOGLE_LOGIN:
|
||||
return LoginWrenchBoardGoogle(in, out);
|
||||
break;
|
||||
|
||||
case WRENCHBOARD_ACCOUNT_PENDING:
|
||||
return CreateWrenchBoardAccountPending(in, out);
|
||||
break;
|
||||
@@ -294,18 +303,62 @@ test();
|
||||
return WrenchLoadDashData(in, out);
|
||||
break;
|
||||
|
||||
case WRENCHBOARD_USER_GETBANKLIST:
|
||||
return WrenchReturnMemberBankAccount(in, out);
|
||||
break;
|
||||
|
||||
case WRENCHBOARD_USER_SENDMONEY:
|
||||
return WrenchBoardMobileSendMoney(in, out);
|
||||
case WRENCHBOARD_USER_GETBANKLIST:
|
||||
return WrenchReturnMemberBankAccount(in, out);
|
||||
break;
|
||||
|
||||
break;
|
||||
|
||||
case WRENCHBOARD_USER_SENDJOBINT:
|
||||
return WrenchBoardMobileSendJobInterest(in, out);
|
||||
break;
|
||||
case WRENCHBOARD_USER_SENDMONEY:
|
||||
return WrenchBoardMobileSendMoney(in, out);
|
||||
break;
|
||||
|
||||
case WRENCHBOARD_USER_SENDJOBINT:
|
||||
return WrenchBoardMobileSendJobInterest(in, out);
|
||||
break;
|
||||
|
||||
case WRENCHBOARD_USER_ADNEWCC:
|
||||
return WrenchNewCardPayment(in, out);
|
||||
break;
|
||||
|
||||
case WRENCHBOARD_USER_USESAVEDCC:
|
||||
return WrenchCardRechargePayment(in, out);
|
||||
break;
|
||||
|
||||
case WRENCHBOARD_USER_SETTINGS:
|
||||
REQ_LONG(in, "member_id", 1, -1);
|
||||
REQ_STRING(in, "pref_id", 4, 6, "(.*)");
|
||||
REQ_LONG(in, "status", 1, -1);
|
||||
|
||||
res = pgsql_query("SELECT id FROM members_settings WHERE member_id=%lu AND pref_id='%s' ", in["member_id"].Long(), in["pref_id"].c_str());
|
||||
if (res != NULL && pgsql_num_rows(res) > 0) {
|
||||
pgsql_exec("UPDATE members_settings SET status=%lu WHERE member_id=%lu AND pref_id='%s' ",in["status"].Long(), in["member_id"].Long(), in["pref_id"].c_str());
|
||||
}
|
||||
else{
|
||||
CVars xx;
|
||||
xx["member_id"] = in["member_id"]; xx["member_id"].set_valid(true);
|
||||
xx["pref_id"] = in["pref_id"]; xx["pref_id"].set_valid(true);
|
||||
xx["status"] = in["status"]; xx["status"].set_valid(true);
|
||||
insert_db_record(DBS_VALID, "members_settings", "members_settings_id_seq", xx);
|
||||
}
|
||||
ret = PHP_API_OK;
|
||||
break;
|
||||
|
||||
case WRENCHBOARD_ACCOUNT_WALLETS:
|
||||
logfmt(logINFO, "/account_calls()");
|
||||
return WrenchBoardMobileSendUserWallet(in, out);
|
||||
break;
|
||||
|
||||
case WRENCHBOARD_USER_DELETEACC:
|
||||
REQ_LONG(in, "member_id", 1, -1);
|
||||
REQ_STRING(in, "reason", 2, 149, "(.*)");
|
||||
CVars xx;
|
||||
xx["member_id"] = in["member_id"]; xx["member_id"].set_valid(true);
|
||||
xx["reason"] = in["reason"]; xx["reason"].set_valid(true);
|
||||
out["delete_id"] = insert_db_record(DBS_VALID, "members_delete", "members_delete_id_seq", xx);
|
||||
ret = PHP_API_OK;
|
||||
/*
|
||||
DO THE DELETE HERE NOW
|
||||
*/
|
||||
break;
|
||||
|
||||
}
|
||||
logfmt(logINFO, "/account_calls()");
|
||||
@@ -314,6 +367,56 @@ test();
|
||||
|
||||
#define PHP_API_TRANSFER_COMPLETE 200
|
||||
|
||||
long WrenchBoardMobileSendUserWallet(CVars in, CVars &out) {
|
||||
logfmt(logINFO, "WrenchBoardMobileSendUserWallet()");
|
||||
char vname[30];
|
||||
long ret = PHP_API_BAD_PARAM;
|
||||
|
||||
try {
|
||||
REQ_LONG(in, "member_id", 1, -1);
|
||||
out["total_record"] = "0";
|
||||
const PGresult *res;
|
||||
res = pgsql_query("SELECT w.amount,c.*,w.amount AS current_balance FROM members_wallet w LEFT JOIN currency c ON c.code=w.currency WHERE w.member_id =%lu ORDER BY c.lorder DESC", in["member_id"].Long());
|
||||
|
||||
if (res != NULL && pgsql_num_rows(res) > 0) {
|
||||
out["total_record"] = pgsql_num_rows(res);
|
||||
|
||||
for (int i = 0, n = pgsql_num_rows(res); i < n; i++) {
|
||||
map<const char*, const char*>f = pgsql_fetch_assoc(res, i);
|
||||
if (f.empty()) continue;
|
||||
CVars rec;
|
||||
map_to_cvars(f, rec);
|
||||
|
||||
snprintf(vname, sizeof (vname), "amount_%05d", i);
|
||||
out[vname] = rec["amount"];
|
||||
snprintf(vname, sizeof (vname), "currency_%05d", i);
|
||||
out[vname] = rec["currency"];
|
||||
|
||||
// amount | id | code | description | symbol | action_type | lorder | current_balance
|
||||
snprintf(vname, sizeof (vname), "description_%05d", i);
|
||||
out[vname] = rec["description"];
|
||||
|
||||
snprintf(vname, sizeof (vname), "symbol_%05d", i);
|
||||
out[vname] = rec["symbol"];
|
||||
|
||||
snprintf(vname, sizeof (vname), "action_type_%05d", i);
|
||||
out[vname] = rec["action_type"];
|
||||
|
||||
snprintf(vname, sizeof (vname), "code_%05d", i);
|
||||
out[vname] = rec["code"];
|
||||
|
||||
}
|
||||
}
|
||||
ret = PHP_API_OK;
|
||||
out["status"] = "OK";
|
||||
} catch (bad_parameter) {
|
||||
logfmt(logINFO, "ERROR CALL long WrenchBoardMobileSendUserWallet(CVars in, CVars &out)");
|
||||
}
|
||||
logfmt(logINFO, "/WrenchBoardMobileSendUserWallet()");
|
||||
return ret;
|
||||
|
||||
}
|
||||
|
||||
long WrenchBoardMobileSendJobInterest(CVars in, CVars &out) {
|
||||
long ret = PHP_API_BAD_PARAM;
|
||||
try {
|
||||
@@ -363,6 +466,7 @@ long WrenchBoardMobileSendJobInterest(CVars in, CVars &out) {
|
||||
return ret;
|
||||
}
|
||||
long WrenchBoardMobileSendMoney(CVars in, CVars &out){
|
||||
logfmt(logINFO, "long *************** WrenchBoardMobileSendMoney(CVars in, CVars out)");
|
||||
long ret = PHP_API_BAD_PARAM;
|
||||
|
||||
try{
|
||||
@@ -377,7 +481,7 @@ long WrenchBoardMobileSendMoney(CVars in, CVars &out){
|
||||
sprintf(send_trxid, "T%04lu", r1);
|
||||
|
||||
logfmt(logINFO, "Recipient ID =====() %lu",in["bankid"].Long() );
|
||||
out["sendmoney_message"] ="Processing...";
|
||||
out["sendmoney_message"] ="Processing...";
|
||||
|
||||
|
||||
REQ_LONG(in, "bankid", 1, -1);
|
||||
@@ -672,6 +776,9 @@ long WrenchReturnStartJobList(CVars in, CVars &out) {
|
||||
snprintf(vname, sizeof (vname), "description_%05d", i);
|
||||
out[vname] = rec["description"];
|
||||
|
||||
snprintf(vname, sizeof (vname), "expire_%05d", i);
|
||||
out[vname] = rec["expire"];
|
||||
|
||||
snprintf(vname, sizeof (vname), "id_%05d", i);
|
||||
out[vname] = rec["job_id"];
|
||||
}
|
||||
@@ -1146,6 +1253,13 @@ long LoginWrenchBoardAccount(CVars in, CVars &out) {
|
||||
|
||||
ret = load_db_record(out, "SELECT *,id AS member_id , to_char(last_login, 'Day Mon dd, yyyy HH:MI AM') AS last_login2 FROM members WHERE status=1 AND LOWER(username)=LOWER('%s') AND password= md5('%s')", in["username"].c_str(), in["password"].c_str());
|
||||
if (ret) {
|
||||
CVars vw;
|
||||
vw["currency"] = "NAIRA"; // this might become a variable based on the country
|
||||
vw["currency"].set_valid( true );
|
||||
long wallet_id = CheckWallet(out["member_id"].Long(),vw);
|
||||
|
||||
load_db_record( out, "SELECT amount AS balance FROM members_wallet WHERE member_id = %lu AND currency='%s' ", out["member_id"].Long(), vw["currency"].c_str());
|
||||
|
||||
|
||||
pgsql_exec("DELETE FROM members_session WHERE member_id=%ld ", out["member_id"].Long());
|
||||
// remove all existing session
|
||||
@@ -1174,6 +1288,9 @@ long LoginWrenchBoardFacebook(CVars in, CVars &out) {
|
||||
long res = PHP_API_BAD_PARAM;
|
||||
logfmt(logINFO, "LoginWrenchBoardFacebook()");
|
||||
REQ_STRING(in, "fb_id", 5, 49, "(.*)");
|
||||
in["external_idp_provider_id"] = in["fb_id"].Long();
|
||||
in["external_idp_provider"] = 1L; // Facebook
|
||||
in["fb_id"].set_valid(false);
|
||||
REQ_STRING(in, "email", 6, 49, "(.*)");
|
||||
OPTIONAL(in, "firstname") REQ_STRING(in, "firstname", 1, 49, "(.*)");
|
||||
else in["firstname"] = "";
|
||||
@@ -1181,8 +1298,35 @@ long LoginWrenchBoardFacebook(CVars in, CVars &out) {
|
||||
else in["lastname"] = "";
|
||||
REQ_STRING(in, "sessionid", 4, 40, "(.*)");
|
||||
OPTIONAL(in, "loc") REQ_STRING(in, "loc", 3, 15, "(.*)");
|
||||
res = LoginWrenchBoardExternal(in, out);
|
||||
logfmt(logINFO, "/LoginWrenchBoardFacebook()");
|
||||
return res;
|
||||
}
|
||||
|
||||
const char * loc = getenv("REMOTE_ADDR");
|
||||
long LoginWrenchBoardGoogle(CVars in, CVars &out) {
|
||||
long res = PHP_API_BAD_PARAM;
|
||||
logfmt(logINFO, "LoginWrenchBoardGoogle()");
|
||||
REQ_STRING(in, "google_id", 5, 49, "(.*)");
|
||||
in["external_idp_provider_id"] = in["google_id"].Long();
|
||||
in["external_idp_provider"] = 2L; // Google
|
||||
in["google_id"].set_valid(false);
|
||||
REQ_STRING(in, "email", 6, 49, "(.*)");
|
||||
OPTIONAL(in, "firstname") REQ_STRING(in, "firstname", 1, 49, "(.*)");
|
||||
else in["firstname"] = "";
|
||||
OPTIONAL(in, "lastname") REQ_STRING(in, "lastname", 1, 49, "(.*)");
|
||||
else in["lastname"] = "";
|
||||
REQ_STRING(in, "sessionid", 4, 40, "(.*)");
|
||||
OPTIONAL(in, "loc") REQ_STRING(in, "loc", 3, 15, "(.*)");
|
||||
res = LoginWrenchBoardExternal(in, out);
|
||||
logfmt(logINFO, "/LoginWrenchBoardGoogle()");
|
||||
return res;
|
||||
}
|
||||
|
||||
|
||||
long LoginWrenchBoardExternal(CVars in, CVars &out) {
|
||||
long res = PHP_API_BAD_PARAM;
|
||||
logfmt(logINFO, "LoginWrenchBoardExternal()");
|
||||
const char * loc = getenv("REMOTE_ADDR");
|
||||
in["loc"] = loc;
|
||||
in["loc"].set_valid(true);
|
||||
|
||||
@@ -1190,7 +1334,7 @@ long LoginWrenchBoardFacebook(CVars in, CVars &out) {
|
||||
if (ret > 0) {
|
||||
out["status"] = "Email is already registered";
|
||||
} else {
|
||||
ret = load_db_record(out, "SELECT *,id AS member_id FROM members WHERE LOWER(email)=LOWER('%s') AND fb_id='%s'", in["email"].c_str(), in["fb_id"].c_str());
|
||||
ret = load_db_record(out, "SELECT *,id AS member_id FROM members WHERE LOWER(email)=LOWER('%s') AND external_idp_provider_id='%s' AND external_idp_provider=%ld", in["email"].c_str(), in["external_idp_provider_id"].c_str(), in["external_idp_provider"].Long());
|
||||
if (ret > 0) {
|
||||
logfmt(logINFO, "FB account already exists");
|
||||
} else {
|
||||
@@ -1206,8 +1350,10 @@ long LoginWrenchBoardFacebook(CVars in, CVars &out) {
|
||||
xx["email"].set_valid(true);
|
||||
xx["loc"] = in["loc"];
|
||||
xx["loc"].set_valid(true);
|
||||
xx["fb_id"] = in["fb_id"];
|
||||
xx["fb_id"].set_valid(true);
|
||||
xx["external_idp_provider"] = in["external_idp_provider"];
|
||||
xx["external_idp_provider"].set_valid(true);
|
||||
xx["external_idp_provider_id"] = in["external_idp_provider_id"];
|
||||
xx["external_idp_provider_id"].set_valid(true);
|
||||
out["member_id"] = insert_db_record(DBS_VALID, "members", "members_id_seq", xx);
|
||||
ret = load_db_record(out, "SELECT *,id AS member_id FROM members WHERE id='%ld'", out["member_id"].Long());
|
||||
}
|
||||
@@ -1227,7 +1373,7 @@ long LoginWrenchBoardFacebook(CVars in, CVars &out) {
|
||||
}
|
||||
}
|
||||
}
|
||||
logfmt(logINFO, "/LoginWrenchBoardFacebook()");
|
||||
logfmt(logINFO, "/LoginWrenchBoardExternal()");
|
||||
return res;
|
||||
}
|
||||
|
||||
|
||||
@@ -11,7 +11,7 @@
|
||||
#include "pgsql_wrapper.h"
|
||||
#include "cfg.h"
|
||||
#include <curl/curl.h>
|
||||
|
||||
#include "payments.h"
|
||||
#include "account.h"
|
||||
|
||||
|
||||
@@ -514,6 +514,12 @@ long CreateWrenchBoardAccount(CVars in, CVars &out) {
|
||||
x["member_id"].set_valid(true);
|
||||
x["pending_id"] = out["pending_id"];
|
||||
x["pending_id"].set_valid(true);
|
||||
|
||||
CVars vw;
|
||||
vw["currency"] = "NAIRA"; // this will become a variable based on the country
|
||||
vw["currency"].set_valid( true );
|
||||
out["wallet_id"] = CheckWallet(out["member_id"].Long(),vw); // initial wallet
|
||||
|
||||
// - password already set pgsql_query("UPDATE members SET password = md5('%s') WHERE id = %lu",in["pass1"].c_str(),ret);
|
||||
pgsql_query("UPDATE members_pending SET status = 5 WHERE id = %lu", out["pending_id"].Long());
|
||||
pgsql_query("UPDATE members_refer_friend SET status = 5 WHERE status = 1 AND email = '%s'", x["email"].c_str());
|
||||
|
||||
@@ -22,14 +22,14 @@ long save_creditcard(CVars in, CVars &out) {
|
||||
try {
|
||||
CVars v;
|
||||
|
||||
REQ_LONG(in, "member_id", 1, -1); // Does not make any sence without member persitence
|
||||
REQ_LONG(in, "member_id", 1, -1); // Does not make any sence without member persitence
|
||||
REQ_STRING(in, "cardnumber", 12, 16, "(.*)"); //4111111111111111"
|
||||
REQ_STRING(in, "cvc", 3, 4, "(.*)"); //234"
|
||||
REQ_LONG(in, "paymenttype", 0, -1);
|
||||
REQ_STRING(in, "exp_month", 2, 2, "(.*)");
|
||||
REQ_STRING(in, "exp_year", 4, 4, "(.*)");
|
||||
|
||||
if ( load_db_record( v, "SELECT a.id AS member_id,a.firstname,a.lastname,'' AS street1,'' AS street2,a.city,'' AS postal,a.state,a.country FROM members a WHERE a.id=%lu", in["member_id"].Long()) > 0) {
|
||||
if ( load_db_record( v, "SELECT a.id AS member_id,a.firstname,a.lastname,'' AS street1,'' AS street2,a.city,zip_code AS postal,a.state,a.country FROM members a WHERE a.id=%lu", in["member_id"].Long()) > 0) {
|
||||
|
||||
logfmt(logDEBUG, "Loaded member %s %s", v["firstname"].c_str(), v["lastname"].c_str());
|
||||
|
||||
|
||||
@@ -25,7 +25,7 @@ long alert_email(long mailtype, CVars in, CVars &out) {
|
||||
char * server_name = getenv("SERVER_NAME");
|
||||
form.LetStr("server_name", server_name);
|
||||
form.LetStr("site_name", "WrenchBoard");
|
||||
form.LetStr("site_trade_name", "Connecting Experts with Clients");
|
||||
form.LetStr("site_trade_name", "Connecting Opportunities");
|
||||
switch (mailtype) {
|
||||
|
||||
case WRB_CRONJOB_SIGNUP_ALERT:
|
||||
@@ -57,10 +57,10 @@ long SendmarketMessage(CVars in, CVars &out) {
|
||||
char * server_name = getenv("SERVER_NAME");
|
||||
// form.LetStr("server_name", server_name);
|
||||
form.LetStr("site_name", "WrenchBoard");
|
||||
form.LetStr("site_trade_name", "Connecting Experts with Clients");
|
||||
form.LetStr("site_trade_name", "Connecting Opportunities");
|
||||
vars2form(in, form);
|
||||
|
||||
in["server_name"] = "https://www.wrenchboard.com";
|
||||
in["server_name"] = "https://dashboard.wrenchboard.com";
|
||||
|
||||
int c = 0;
|
||||
|
||||
@@ -144,7 +144,7 @@ long cron_email(long mailtype, CVars in, CVars &out) {
|
||||
char * server_name = getenv("SERVER_NAME");
|
||||
form.LetStr("server_name", server_name);
|
||||
form.LetStr("site_name", "WrenchBoard");
|
||||
form.LetStr("site_trade_name", "Connecting Experts with Clients");
|
||||
form.LetStr("site_trade_name", "Connecting Opportunities");
|
||||
|
||||
try {
|
||||
|
||||
@@ -157,7 +157,7 @@ long cron_email(long mailtype, CVars in, CVars &out) {
|
||||
if (load_db_record(x, "SELECT *,email as email2,to_char(last_login, 'Day Mon dd, yyyy HH:MI AM') AS last_login2 FROM members WHERE id = %lu ", in["member_id"].Long())) {
|
||||
|
||||
|
||||
in["server_name"] = "https://www.wrenchboard.com";
|
||||
in["server_name"] = "https://dashboard.wrenchboard.com";
|
||||
|
||||
int c = 0;
|
||||
|
||||
@@ -222,6 +222,9 @@ long cron_email(long mailtype, CVars in, CVars &out) {
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
|
||||
long account_email(long mailtype, CVars in, CVars &out) {
|
||||
|
||||
//REQ_LONG( in, "member_id", 1, -1 );
|
||||
@@ -231,11 +234,12 @@ long account_email(long mailtype, CVars in, CVars &out) {
|
||||
CGIList * inv_list = new CGIList(&form, "inv_items");
|
||||
char listing_items[1024];
|
||||
const PGresult *res;
|
||||
|
||||
bool exclude_email = true;
|
||||
char * server_name = getenv("SERVER_NAME");
|
||||
form.LetStr("server_name", server_name);
|
||||
form.LetStr("server_name", "https://dashboard.wrenchboard.com");
|
||||
form.LetStr("site_name", "WrenchBoard");
|
||||
form.LetStr("site_trade_name", "Connecting Experts with Clients");
|
||||
form.LetStr("site_trade_name", "Connecting Opportunities");
|
||||
|
||||
|
||||
try {
|
||||
|
||||
@@ -272,10 +276,17 @@ long account_email(long mailtype, CVars in, CVars &out) {
|
||||
|
||||
case ACCOUNT_LOGIN_ALERT:
|
||||
REQ_LONG(in, "member_id", 1, -1);
|
||||
if (load_db_record(x, "SELECT *,email as email2,to_char(last_login, 'Day Mon dd, yyyy HH:MI AM') AS last_login2 FROM members WHERE id = %lu ", in["member_id"].Long())) {
|
||||
|
||||
// testing exclusion first
|
||||
res = pgsql_query("SELECT * FROM members_settings WHERE member_id = %lu AND pref_id='S0001' AND status=100", in["member_id"].Long());
|
||||
if (res != NULL && pgsql_num_rows(res) > 0) {
|
||||
exclude_email = false;
|
||||
}
|
||||
|
||||
if (!exclude_email && load_db_record(x, "SELECT *,email as email2,to_char(last_login, 'Day Mon dd, yyyy HH:MI AM') AS last_login2 FROM members WHERE id = %lu ", in["member_id"].Long())) {
|
||||
|
||||
|
||||
in["server_name"] = "https://www.wrenchboard.com";
|
||||
in["server_name"] = "https://dashboard.wrenchboard.com";
|
||||
|
||||
int c = 0;
|
||||
|
||||
@@ -303,7 +314,7 @@ long account_email(long mailtype, CVars in, CVars &out) {
|
||||
CVars rec;
|
||||
map_to_cvars(f, rec);
|
||||
|
||||
sprintf(listing_items, "<TR><td style='background-color:#%s'><a href='%s/plb/viewjob/%s'>%s</a> - %s<br><b>Duration:</b>%s Day(s)</td></TR>", in["color"].c_str(), in["server_name"].c_str(), rec["offer_code"].c_str(), rec["title"].c_str(), rec["description"].c_str(), rec["timeline_days"].c_str());
|
||||
sprintf(listing_items, "<TR><td style='background-color:#%s; font-size:12px;'><a href='%s/plb/viewjob/%s'>%s</a> - %s<br><b>Duration:</b>%s Day(s)</td></TR>", in["color"].c_str(), in["server_name"].c_str(), rec["offer_code"].c_str(), rec["title"].c_str(), rec["description"].c_str(), rec["timeline_days"].c_str());
|
||||
inv_list->LetStr("pin", listing_items);
|
||||
inv_list->CloseElement();
|
||||
//<hr size=1 color=#FF0000>
|
||||
@@ -321,6 +332,7 @@ long account_email(long mailtype, CVars in, CVars &out) {
|
||||
break;
|
||||
|
||||
case ACCOUNT_PASSWORD_RESET:
|
||||
|
||||
REQ_LONG(in, "password_reset_id", 1, -1);
|
||||
if (load_db_record(x, "select p.*,m.firstname,m.lastname,m.email, "
|
||||
" TO_CHAR(expired :: TIMESTAMP, 'Day Mon dd, yyyy HH:MI AM') AS long_expired , "
|
||||
@@ -328,6 +340,7 @@ long account_email(long mailtype, CVars in, CVars &out) {
|
||||
" FROM password_reset p "
|
||||
" LEFT JOIN members m ON m.id =p.member_id WHERE p.id = %lu ", in["password_reset_id"].Long())) {
|
||||
vars2form(x, form);
|
||||
form.LetStr("server_name", server_name);
|
||||
form.Email("ACCOUNT/member_resetpass.mailfile");
|
||||
}
|
||||
break;
|
||||
@@ -379,7 +392,7 @@ long job_email(long mailtype, CVars in, CVars &out) {
|
||||
char * server_name = getenv("SERVER_NAME");
|
||||
form.LetStr("server_name", server_name);
|
||||
form.LetStr("site_name", "WrenchBoard");
|
||||
form.LetStr("site_trade_name", "Connecting Experts with Clients");
|
||||
form.LetStr("site_trade_name", "Connecting Opportunities");
|
||||
switch (mailtype) {
|
||||
|
||||
case WRENCHBOARD_JOB_REPLY_QUESTION:
|
||||
@@ -417,7 +430,7 @@ long job_email(long mailtype, CVars in, CVars &out) {
|
||||
vars2form(y, form);
|
||||
// FOR CRON JOBS SET SERVER NAME
|
||||
form.LetStr("preview_count", in["preview_count"].c_str());
|
||||
form.LetStr("server_name", "www.wrenchboard.com");
|
||||
form.LetStr("server_name", "dashboard.wrenchboard.com");
|
||||
vars2form(x, form);
|
||||
form.LetStr("subject", "Completed Task Processing Past Due");
|
||||
form.LetStr("email", y["email"].c_str());
|
||||
@@ -431,7 +444,7 @@ long job_email(long mailtype, CVars in, CVars &out) {
|
||||
|
||||
if (load_db_record(x, "SELECT m.firstname,m.email,mj.title,c.* FROM members_jobs_contract c LEFT JOIN members m ON m.id=c.client_id LEFT JOIN members_jobs mj ON mj.id = c.job_id WHERE c.id=%lu AND c.due_remind IS NULL", in["contract_id"].Long())) {
|
||||
// FOR CRON JOBS SET SERVER NAME
|
||||
form.LetStr("server_name", "www.wrenchboard.com");
|
||||
form.LetStr("server_name", "dashboard.wrenchboard.com");
|
||||
vars2form(x, form);
|
||||
form.LetStr("subject", "Task Due Date Approaching");
|
||||
form.LetStr("email", x["email"].c_str());
|
||||
@@ -662,7 +675,7 @@ long sendmoney_email(long mailtype, CVars in, CVars &out) {
|
||||
char * server_name = getenv("SERVER_NAME");
|
||||
form.LetStr("server_name", server_name);
|
||||
form.LetStr("site_name", "WrenchBoard");
|
||||
form.LetStr("site_trade_name", "Connecting Experts with Clients");
|
||||
form.LetStr("site_trade_name", "Connecting Opportunities");
|
||||
|
||||
long sendmoney_id = REQ_LONG(in, "sendmoney_id", 1, -1);
|
||||
logfmt(logINFO, "sendmoney_email() sendmoney_id = %lu", sendmoney_id);
|
||||
@@ -723,7 +736,7 @@ long project_email(long mailtype, CVars in, CVars &out) {
|
||||
char * server_name = getenv("SERVER_NAME");
|
||||
form.LetStr("server_name", server_name);
|
||||
form.LetStr("site_name", "WrenchBoard");
|
||||
form.LetStr("site_trade_name", "Connecting Experts with Clients");
|
||||
form.LetStr("site_trade_name", "Connecting Opportunities");
|
||||
|
||||
|
||||
load_db_record(out, "SELECT ms.firstname AS member_firstaname,ms.email AS member_email, j.*,js.title,js.description,js.price AS amount FROM members_jobs_contract j LEFT JOIN members_jobs js ON js.id=j.job_id LEFT JOIN members ms ON ms.id=j.member_id WHERE j.id=%lu", contract_id);
|
||||
@@ -835,7 +848,7 @@ long test_email(CVars in, CVars &out) {
|
||||
char * server_name = getenv("SERVER_NAME");
|
||||
form.LetStr("server_name", server_name);
|
||||
form.LetStr("site_name", "WrenchBoard");
|
||||
form.LetStr("site_trade_name", "Connecting Experts with Clients");
|
||||
form.LetStr("site_trade_name", "Connecting Opportunities");
|
||||
|
||||
if (load_db_record(x, "select p.*,m.firstname,m.lastname,m.email from password_reset p LEFT JOIN members m ON m.id =p.member_id WHERE p.id = 8 ")) {
|
||||
vars2form(x, form);
|
||||
@@ -897,7 +910,7 @@ long SignupPendingAlertMailfile(CVars in) {
|
||||
form.LetStr("site_name", "WrenchBoard");
|
||||
form.LetStr("subject", "WrenchBoard Contact Us Alert");
|
||||
|
||||
if (load_db_record(x, "SELECT *,email as email2 FROM members_pending WHERE id = %lu ", in["pending_id"].Long())) {
|
||||
if (load_db_record(x, "SELECT *,email as email2,to_char(expire, 'Day Mon dd, yyyy HH:MI AM') AS expire,to_char(added, 'Day Mon dd, yyyy HH:MI AM') AS added FROM members_pending WHERE id = %lu ", in["pending_id"].Long())) {
|
||||
vars2form(x, form);
|
||||
form.LetStr("email", out["alertemail"].c_str());
|
||||
form.Email("ALERT/alert_signup.mailfile");
|
||||
@@ -971,16 +984,16 @@ long AccountPendingMail(CVars in) //TESTED
|
||||
char * server_name = getenv("SERVER_NAME");
|
||||
form.LetStr("server_name", server_name);
|
||||
form.LetStr("site_name", "WrenchBoard");
|
||||
form.LetStr("site_trade_name", "Connecting Experts with Clients");
|
||||
form.LetStr("site_trade_name", "Connecting Opportunities");
|
||||
|
||||
if (load_db_record(x, "SELECT * FROM members_pending WHERE id = %lu ", in["pending_id"].Long())) {
|
||||
if (load_db_record(x, "SELECT *,to_char(expire, 'Day Mon dd, yyyy HH:MI AM') AS expire FROM members_pending WHERE id = %lu ", in["pending_id"].Long())) {
|
||||
vars2form(x, form);
|
||||
form.LetStr("email", x["email"].c_str());
|
||||
if (x["signup_random"] != "" && x["signup_random"].Long() > 0 && in["mobile_email"].Long() == 100) {
|
||||
form.Email("ACCOUNT/member_pending_mobile.mailfile");
|
||||
|
||||
} else {
|
||||
form.Email("ACCOUNT/member_pending.mailfile");
|
||||
form.Email("ACCOUNT/member_pending_mobile.mailfile");
|
||||
}
|
||||
}
|
||||
|
||||
@@ -988,8 +1001,6 @@ long AccountPendingMail(CVars in) //TESTED
|
||||
in["message"] = "Account Pending";
|
||||
in["title"].set_valid(true);
|
||||
in["message"].set_valid(true);
|
||||
//AlertActions(in);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
@@ -1001,7 +1012,7 @@ long WelcomeAccountMail(CVars in) // TESTED
|
||||
C_CGI_Form form("", "");
|
||||
|
||||
char * server_name = getenv("SERVER_NAME");
|
||||
form.LetStr("server_name", server_name);
|
||||
form.LetStr("server_name", "https://dashboard.wrenchboard.com");
|
||||
form.LetStr("site_name", "WrenchBoard");
|
||||
|
||||
if (load_db_record(x, "SELECT * FROM members WHERE id = %lu ", in["member_id"].Long())) {
|
||||
@@ -1020,16 +1031,30 @@ long WelcomeAccountMail(CVars in) // TESTED
|
||||
|
||||
long JobAddedMail(CVars in) //TESTED
|
||||
{
|
||||
|
||||
|
||||
|
||||
REQ_LONG(in, "member_id", 1, -1);
|
||||
REQ_LONG(in, "job_id", 1, -1);
|
||||
CVars x;
|
||||
CVars out;
|
||||
C_CGI_Form form("", "");
|
||||
const PGresult *res;
|
||||
|
||||
char * server_name = getenv("SERVER_NAME");
|
||||
form.LetStr("server_name", server_name);
|
||||
form.LetStr("server_name", "https://dashboard.wrenchboard.com");
|
||||
form.LetStr("site_name", "WrenchBoard");
|
||||
|
||||
// testing exclusion first
|
||||
res = pgsql_query("SELECT * FROM members_settings WHERE member_id = %lu AND pref_id='S0008' AND status=100", in["member_id"].Long());
|
||||
if (res != NULL && pgsql_num_rows(res) > 0) {
|
||||
|
||||
}
|
||||
else{
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
if (load_db_record(x, "SELECT j.*,j.title as title2,m.email,m.firstname FROM members_jobs j LEFT JOIN members m ON m.id = j.member_id WHERE j.id = %lu AND j.member_id = %lu", in["job_id"].Long(), in["member_id"].Long())) {
|
||||
vars2form(x, form);
|
||||
form.LetStr("email", x["email"].c_str());
|
||||
@@ -1040,7 +1065,7 @@ long JobAddedMail(CVars in) //TESTED
|
||||
vars2form(x, form2);
|
||||
out["alertemail"] = CfgReadChar("transnotif.contact");
|
||||
char * server_name = getenv("SERVER_NAME");
|
||||
form2.LetStr("server_name", server_name);
|
||||
form2.LetStr("server_name", "https://dashboard.wrenchboard.com");
|
||||
form2.LetStr("site_name", "WrenchBoard");
|
||||
in["title"] = "Job Added Alert";
|
||||
in["message"] = "Job Added Alert";
|
||||
@@ -1063,7 +1088,7 @@ long CreateWrenchBoardGroupMail(CVars in) {
|
||||
C_CGI_Form form("", "");
|
||||
|
||||
char * server_name = getenv("SERVER_NAME");
|
||||
form.LetStr("server_name", server_name);
|
||||
form.LetStr("server_name", "https://dashboard.wrenchboard.com");
|
||||
form.LetStr("site_name", "WrenchBoard");
|
||||
|
||||
if (load_db_record(x, "select g.*,m.email,m.firstname,m.lastname from members_groups g LEFT JOIN members m ON m.id = g.member_id WHERE g.id = %lu ", in["group_id"].Long())) {
|
||||
@@ -1082,7 +1107,7 @@ long GroupCreateMemberMail(CVars in) {
|
||||
C_CGI_Form form("", "");
|
||||
|
||||
char * server_name = getenv("SERVER_NAME");
|
||||
form.LetStr("server_name", server_name);
|
||||
form.LetStr("server_name", "https://dashboard.wrenchboard.com");
|
||||
form.LetStr("site_name", "WrenchBoard");
|
||||
|
||||
if (load_db_record(x, "SELECT gm.*,m.*,e.email FROM group_members gm LEFT JOIN members_groups m ON m.id=gm.group_id LEFT JOIN members e ON e.id=gm.member_id WHERE gm.id = %lu", in["group_member_id"].Long())) {
|
||||
@@ -1117,7 +1142,7 @@ long EmailCustBalUpdt(CVars in) {
|
||||
CVars x;
|
||||
|
||||
vars2form(x, form);
|
||||
form.LetStr("site", server_name);
|
||||
form.LetStr("server_name", "https://dashboard.wrenchboard.com");
|
||||
form.Email("test.mailfile");
|
||||
return 0;
|
||||
}
|
||||
@@ -1209,7 +1234,7 @@ long StartPassResetEmail(CVars in) {
|
||||
vars2form(x, form);
|
||||
|
||||
|
||||
form.LetStr("site", server_name);
|
||||
form.LetStr("server_name", "https://dashboard.wrenchboard.com");
|
||||
/*
|
||||
CREATE TABLE lostpass (
|
||||
id serial NOT NULL,
|
||||
@@ -1245,7 +1270,7 @@ long CompletePassResetEmail(CVars in) {
|
||||
vars2form(x, form);
|
||||
|
||||
|
||||
form.LetStr("site", server_name);
|
||||
form.LetStr("server_name", "https://dashboard.wrenchboard.com");
|
||||
|
||||
|
||||
|
||||
@@ -1296,7 +1321,7 @@ long CustomerAirSalePayment(CVars in) {
|
||||
form.LetStr("paymode", "Payment with card");
|
||||
}
|
||||
|
||||
|
||||
form.LetStr("server_name", "https://dashboard.wrenchboard.com");
|
||||
form.LetStr("site", server_name);
|
||||
form.LetStr("email", x["email2"].c_str());
|
||||
form.Email("topup_payment.mailfile"); //customer notification
|
||||
|
||||
@@ -171,14 +171,14 @@ long WrenchMarketInterestQuestion(CVars in, CVars &out) {
|
||||
ret = PHP_CREATED_OK;
|
||||
|
||||
} catch (bad_parameter) {
|
||||
out["log_status"] = "Invalid Log Action";
|
||||
out["log_status"] = "Error WrenchMarketInterestQuestion";
|
||||
}
|
||||
return ret;
|
||||
}
|
||||
|
||||
long WrenchJobsQuestion(CVars in, CVars &out) {
|
||||
long ret = PHP_API_BAD_PARAM;
|
||||
out = in;
|
||||
//out = in;
|
||||
try {
|
||||
out["status"] = "Recieved";
|
||||
long member_id = REQ_LONG(in, "member_id", 1, -1);
|
||||
@@ -207,8 +207,14 @@ long WrenchJobsQuestion(CVars in, CVars &out) {
|
||||
x["memo"].set_valid(true);
|
||||
long msg_id = insert_db_record(DBS_VALID, "members_messages", "members_messages_id_seq", x);
|
||||
if (msg_id > 0) {
|
||||
|
||||
x["msg_id"] = msg_id;
|
||||
x["msg_id"].set_valid(true);
|
||||
//x["offer_id"] = out["offer_id"];
|
||||
//x["offer_id"].set_valid(true);
|
||||
job_email(WRENCHBOARD_JOB_SEND_QUESTION, x, out);
|
||||
}
|
||||
out = x;
|
||||
out["status"] = "";
|
||||
|
||||
}
|
||||
}
|
||||
@@ -1086,6 +1092,10 @@ long WrenchCreateJobs(CVars in, CVars &out) {
|
||||
x["loc"].set_valid(true);
|
||||
x["job_detail"] = in["job_detail"];
|
||||
x["job_detail"].set_valid(true);
|
||||
//country added
|
||||
x["country"] = in["country"];
|
||||
x["country"].set_valid(true);
|
||||
|
||||
job_id = insert_db_record(DBS_VALID, "members_jobs", "members_jobs_id_seq", x);
|
||||
|
||||
if (job_id) {
|
||||
|
||||
@@ -4,6 +4,7 @@
|
||||
#include "input.h"
|
||||
#include "wrenchboard_api.h"
|
||||
#include "payments.h"
|
||||
#include "creditcards.h"
|
||||
#include "common_tool.h"
|
||||
#include "email.h"
|
||||
#include "safestring.h"
|
||||
@@ -28,6 +29,188 @@ INSERT INTO payment_types(type_code,code,dir) VALUES('OFFER_PYM_DEPOSIT','OFDPS'
|
||||
INSERT INTO payment_types(type_code,code,dir) VALUES('OFFER_PYM_REFUND','OFRFD',1); -- // refund if offer was rejected or not accepted
|
||||
*/
|
||||
|
||||
long UpdateMemberWallet(long member_id,long wallet_id,long amount, long payment_id);
|
||||
|
||||
/*
|
||||
call to verify the user have the wallet in place - or create it
|
||||
if this fail , dont continue with collecting money , no place to put it.
|
||||
*/
|
||||
long CheckWallet(long member_id,CVars in){
|
||||
logfmt(FLOG_MAX, "long CheckWallet()" );
|
||||
long wallet_id = 0;
|
||||
CVars y;
|
||||
if ( load_db_record( y, "SELECT * FROM members_wallet WHERE currency ='%s' AND member_id =%lu",in["currency"].c_str(),member_id ) > 0 )
|
||||
{
|
||||
wallet_id = y["id"].Long();
|
||||
}
|
||||
else{
|
||||
|
||||
CVars x;
|
||||
x["member_id"] = member_id; x["member_id"].set_valid( true );
|
||||
x["currency"] = in["currency"]; x["currency"].set_valid( true );
|
||||
wallet_id = insert_db_record( DBS_VALID, "members_wallet", "members_wallet_id_seq", x );
|
||||
}
|
||||
return wallet_id;
|
||||
}
|
||||
|
||||
long UpdateMemberWallet(long member_id,long wallet_id,long amount, long payment_id){
|
||||
CVars y;
|
||||
if ( load_db_record( y, "SELECT * FROM members_wallet WHERE id = %lu AND member_id =%lu", wallet_id,member_id ) > 0 )
|
||||
{
|
||||
|
||||
CVars x;
|
||||
x["member_id"] = member_id; x["member_id"].set_valid( true ); //
|
||||
x["payment_id"] = payment_id; x["payment_id"].set_valid( true ); //
|
||||
x["amount"] = amount; x["amount"].set_valid( true ); //
|
||||
x["balance"] = y["amount"]; x["balance"].set_valid( true ); //
|
||||
insert_db_record( DBS_VALID, "members_wallet_detail", "members_wallet_detail_id_seq", x );
|
||||
|
||||
|
||||
pgsql_exec("UPDATE members_wallet SET amount=amount + %lu,prev_amount=%lu WHERE member_id = %lu AND id=%lu",amount,y["amount"].Long(),member_id , wallet_id); // pay attention to who you pay here
|
||||
}
|
||||
return 1;
|
||||
}
|
||||
|
||||
long DeductMemberWallet(long member_id,long wallet_id,long amount, long payment_id){
|
||||
logfmt(FLOG_MAX, "DeductMemberWallet ************************" );
|
||||
logfmt(FLOG_MAX, "Review this design so as not to loose money ");
|
||||
logfmt(FLOG_MAX, "DeductMemberWallet ************************" );
|
||||
|
||||
CVars y;
|
||||
if ( load_db_record( y, "SELECT * FROM members_wallet WHERE id = %lu AND member_id =%lu", wallet_id,member_id ) > 0 )
|
||||
{
|
||||
|
||||
CVars x;
|
||||
x["member_id"] = member_id; x["member_id"].set_valid( true ); //
|
||||
x["payment_id"] = payment_id; x["payment_id"].set_valid( true ); //
|
||||
x["amount"] = amount; x["amount"].set_valid( true ); //
|
||||
x["balance"] = y["amount"]; x["balance"].set_valid( true ); //
|
||||
insert_db_record( DBS_VALID, "members_wallet_detail", "members_wallet_detail_id_seq", x );
|
||||
pgsql_exec("UPDATE members_wallet SET amount=amount - %lu,prev_amount=%lu WHERE member_id = %lu AND id=%lu",amount,y["amount"].Long(),member_id , wallet_id); // pay attention to who you pay here
|
||||
}
|
||||
return 1;
|
||||
}
|
||||
|
||||
|
||||
long WrenchNewCardPayment( CVars in, CVars &out )
|
||||
{
|
||||
long payment_return = 0; // just return 0 if not okay , payment_id is all okay
|
||||
logfmt(FLOG_MAX, "long WrenchNewCardPayment(CVars in, CVars &out)" );
|
||||
long member_id = REQ_LONG( in, "member_id", 1, -1 );
|
||||
long amount = REQ_LONG( in, "amount", 1, -1 );
|
||||
OPTIONAL(in, "WHAT_CHARGE_TYPE") REQ_STRING(in, "WHAT_CHARGE_TYPE", 3, 15, "(.*)");
|
||||
long card_id = 0;
|
||||
|
||||
if ( in["WHAT_CHARGE_TYPE"] == "USE_CARD_ID"){
|
||||
card_id = REQ_LONG( in, "card_id", 1, -1 );
|
||||
in["what_purhcase"] = "MEMBER_RETCARD_PAYM"; in["what_purhcase"].set_valid( true );
|
||||
}
|
||||
else
|
||||
{
|
||||
REQ_STRING(in, "cardnumber", 12, 16, "(.*)"); //4111111111111111"
|
||||
REQ_STRING(in, "cvc", 3, 4, "(.*)"); //234"
|
||||
REQ_LONG(in, "paymenttype", 0, -1);
|
||||
REQ_STRING(in, "exp_month", 2, 2, "(.*)");
|
||||
REQ_STRING(in, "exp_year", 4, 4, "(.*)");
|
||||
in["what_purhcase"] = "MEMBER_NEWCARD_PAYM"; in["what_purhcase"].set_valid( true );
|
||||
}
|
||||
|
||||
|
||||
const char * loc = getenv("REMOTE_ADDR");
|
||||
in["loc"] = loc; in["loc"].set_valid(true);
|
||||
|
||||
long payment_id =0;
|
||||
|
||||
// do we have a wallet for this action
|
||||
CVars vw;
|
||||
vw["currency"] = "USD"; // this might become a variable based on the country
|
||||
vw["currency"].set_valid( true );
|
||||
long wallet_id = CheckWallet(member_id,vw);
|
||||
if(!wallet_id || wallet_id == 0 ){
|
||||
return -1; // no wallet
|
||||
}
|
||||
in["curr_balance"] ="0";
|
||||
long retDb = load_db_record( out, "SELECT amount AS curr_balance FROM members_wallet WHERE member_id = %lu AND currency='%s' ", member_id, vw["currency"].c_str());
|
||||
if (retDb)
|
||||
{ in["curr_balance"] =out["curr_balance"]; in["curr_balance"].set_valid( true );
|
||||
logfmt(FLOG_MAX, "Current balance Read ********************" );
|
||||
}
|
||||
else { return -1; /* unable to read wallet*/ }
|
||||
|
||||
// verify if allowed
|
||||
|
||||
// take in sessionid to verify if allaowed too
|
||||
|
||||
// Get the code and dir contruct
|
||||
long retTc = load_db_record( out, "SELECT * FROM payment_types WHERE type_code = '%s' ",in["what_purhcase"].c_str());
|
||||
if (retTc)
|
||||
{
|
||||
in["code"] = out["code"]; in["code"].set_valid( true );
|
||||
in["dir"] = out["dir"]; in["dir"].set_valid( true );
|
||||
}
|
||||
else { return -1; /* unable to get payment type*/ }
|
||||
|
||||
CVars x;
|
||||
x["member_id"] = member_id; x["member_id"].set_valid( true ); //
|
||||
x["loc"] = in["loc"]; x["loc"].set_valid( true ); //
|
||||
x["curr_balance"] = in["curr_balance"]; x["curr_balance"].set_valid( true ); //
|
||||
x["amount"] = amount; x["amount"].set_valid( true );
|
||||
x["fee"] = "0"; x["fee"].set_valid( true );
|
||||
x["code"] = in["code"]; x["code"].set_valid( true );
|
||||
x["dir"] = in["dir"]; x["dir"].set_valid( true );
|
||||
x["flags"] = FLAG_INIT; x["flags"].set_valid( true ); // starting the pprocess
|
||||
x["currency"] = vw["currency"]; x["currency"].set_valid( true );
|
||||
|
||||
payment_id = insert_db_record( DBS_VALID, "members_payments", "members_payments_id_seq", x );
|
||||
// ALL STRIPE COMPATIBLE
|
||||
if ( card_id == 0 ){
|
||||
card_id = save_creditcard(in, out);
|
||||
}
|
||||
|
||||
|
||||
if (card_id && card_id> 0){
|
||||
pgsql_exec("UPDATE members_payments SET account_id = %lu WHERE id = %lu",card_id,payment_id );
|
||||
}
|
||||
else{
|
||||
return -1;
|
||||
}
|
||||
|
||||
CVars yx;
|
||||
yx["member_id"] = member_id; yx["member_id"].set_valid( true );
|
||||
yx["payment_id"] = payment_id; yx["payment_id"].set_valid( true );
|
||||
long stripe_payment = stripe_charge_member_paymentid(yx, out); // go for stripe now
|
||||
|
||||
if (stripe_payment==PHP_API_OK) {
|
||||
x["flags"] = FLAG_START; x["flags"].set_valid( true ); // done not completed yet
|
||||
//pgsql_exec("UPDATE members_wallet SET amount=amount + %lu,prev_amount=%lu WHERE member_id = %lu AND id=%lu",x["amount"].Long(),x["curr_balance"].Long(),x["member_id"].Long() , wallet_id); // pay attention to who you pay here
|
||||
|
||||
char confirmation[15] = "";
|
||||
Confirmation(payment_id, confirmation, sizeof (confirmation)); // this stamp the offer code directly in that call
|
||||
UpdateMemberWallet( member_id, wallet_id,x["amount"].Long(), payment_id); // correct this dont send amount
|
||||
x["flags"] = FLAG_OK; x["flags"].set_valid( true );
|
||||
x["payment_id"] = payment_id; x["payment_id"].set_valid( true );
|
||||
pgsql_exec("UPDATE members_payments SET flags = %lu WHERE id = %lu",x["flags"].Long(),payment_id );
|
||||
load_db_record( out, "SELECT * FROM members_payments WHERE id = %lu ", payment_id );
|
||||
payment_return = payment_id;
|
||||
} else {
|
||||
out["status"] = "Unable to create payment";
|
||||
}
|
||||
|
||||
logfmt(FLOG_MAX, "/long WrenchNewCardPayment(CVars in, CVars &out)" );
|
||||
return payment_return;
|
||||
}
|
||||
|
||||
long WrenchCardRechargePayment( CVars in, CVars &out )
|
||||
{
|
||||
logfmt(FLOG_MAX, "long WrenchCardRechargePayment(CVars in, CVars &out)" );
|
||||
long member_id = REQ_LONG( in, "member_id", 1, -1 );
|
||||
long amount = REQ_LONG( in, "amount", 1, -1 );
|
||||
long card_id = REQ_LONG( in, "card_id", 1, -1 );
|
||||
in["WHAT_CHARGE_TYPE"] = "USE_CARD_ID"; in["WHAT_CHARGE_TYPE"].set_valid( true ); //
|
||||
return WrenchNewCardPayment( in, out );
|
||||
logfmt(FLOG_MAX, "/long WrenchCardRechargePayment(CVars in, CVars &out)" );
|
||||
}
|
||||
|
||||
long WrenchCanceContractPayment( CVars in, CVars &out )
|
||||
{
|
||||
|
||||
@@ -95,7 +278,11 @@ long WrenchCanceContractPayment( CVars in, CVars &out )
|
||||
|
||||
|
||||
|
||||
|
||||
CVars vw;
|
||||
vw["currency"] = "NAIRA"; // this might become a variable based on the country
|
||||
vw["currency"].set_valid( true );
|
||||
long wallet_id = CheckWallet(in["member_id"].Long(),vw);
|
||||
|
||||
|
||||
/*
|
||||
// TEST FOR DUPLICATE
|
||||
@@ -133,9 +320,12 @@ long WrenchCanceContractPayment( CVars in, CVars &out )
|
||||
ret = PHP_CREATED_OK;
|
||||
x["flags"] = FLAG_START; x["flags"].set_valid( true ); // done not completed yet
|
||||
// now generate the confirmation
|
||||
pgsql_exec("UPDATE members SET balance=balance + %lu WHERE id = %lu",x["amount"].Long(),x["member_id"].Long() ); // pay attention to who you pay here
|
||||
//- Retired this method pgsql_exec("UPDATE members SET balance=balance + %lu WHERE id = %lu",x["amount"].Long(),x["member_id"].Long() ); // pay attention to who you pay here
|
||||
char confirmation[15] = "";
|
||||
Confirmation(payment_id, confirmation, sizeof (confirmation)); // this stamp the offer code directly in that call
|
||||
Confirmation(payment_id, confirmation, sizeof (confirmation)); // this stamp the offer code directly in that call
|
||||
|
||||
UpdateMemberWallet( x["member_id"].Long(), wallet_id,x["amount"].Long(), payment_id); // correct this dont send amount
|
||||
|
||||
x["flags"] = FLAG_OK; x["flags"].set_valid( true );
|
||||
x["payment_id"] = payment_id; x["payment_id"].set_valid( true );
|
||||
pgsql_exec("UPDATE members_payments SET flags = %lu WHERE id = %lu",x["flags"].Long(),payment_id );
|
||||
@@ -200,7 +390,11 @@ Foreign-key constraints:
|
||||
REQ_LONG( in, "dir", 1, -1 );
|
||||
REQ_LONG( in, "offer_id", 1, -1 );
|
||||
|
||||
|
||||
CVars vw;
|
||||
vw["currency"] = "NAIRA"; // this might become a variable based on the country
|
||||
vw["currency"].set_valid( true );
|
||||
long wallet_id = CheckWallet(in["member_id"].Long(),vw);
|
||||
|
||||
|
||||
long retDb = load_db_record( out, "SELECT balance AS curr_balance FROM members WHERE id = %lu", in["member_id"].Long());
|
||||
|
||||
@@ -251,7 +445,8 @@ Foreign-key constraints:
|
||||
ret = PHP_CREATED_OK;
|
||||
x["flags"] = FLAG_START; x["flags"].set_valid( true ); // done not completed yet
|
||||
// now generate the confirmation
|
||||
pgsql_exec("UPDATE members SET balance=balance - %lu WHERE id = %lu",in["amount"].Long() + in["fee"].Long(),in["member_id"].Long() );
|
||||
//pgsql_exec("UPDATE members SET balance=balance - %lu WHERE id = %lu",in["amount"].Long() + in["fee"].Long(),in["member_id"].Long() );
|
||||
DeductMemberWallet(in["member_id"].Long(), wallet_id,in["amount"].Long(), payment_id);
|
||||
char confirmation[15] = "";
|
||||
Confirmation(payment_id, confirmation, sizeof (confirmation)); // this stamp the offer code directly in that call
|
||||
x["flags"] = FLAG_OK; x["flags"].set_valid( true );
|
||||
@@ -280,7 +475,12 @@ long WrenchRefundoffer( CVars in, CVars &out )
|
||||
REQ_LONG( in, "dir", 1, -1 );
|
||||
long offer_id = REQ_LONG( in, "offer_id", 1, -1 );
|
||||
long payment_id = REQ_LONG( in, "payment_id", 1, -1 );
|
||||
|
||||
|
||||
CVars vw;
|
||||
vw["currency"] = "NAIRA"; // this might become a variable based on the country
|
||||
vw["currency"].set_valid( true );
|
||||
long wallet_id = CheckWallet(in["member_id"].Long(),vw);
|
||||
|
||||
long retDb = load_db_record( out, "SELECT balance AS curr_balance FROM members WHERE id = %lu", in["member_id"].Long());
|
||||
|
||||
if (retDb)
|
||||
@@ -312,9 +512,10 @@ long WrenchRefundoffer( CVars in, CVars &out )
|
||||
ret = PHP_CREATED_OK;
|
||||
x["flags"] = FLAG_START; x["flags"].set_valid( true ); // done not completed yet
|
||||
// now generate the confirmation
|
||||
pgsql_exec("UPDATE members SET balance=balance + %lu WHERE id = %lu",x["amount"].Long() + x["fee"].Long(),in["member_id"].Long() );
|
||||
// pgsql_exec("UPDATE members SET balance=balance + %lu WHERE id = %lu",x["amount"].Long() + x["fee"].Long(),in["member_id"].Long() );
|
||||
char confirmation[15] = "";
|
||||
Confirmation(payment_id, confirmation, sizeof (confirmation)); // this stamp the offer code directly in that call
|
||||
Confirmation(payment_id, confirmation, sizeof (confirmation)); // this stamp the offer code directly in that call
|
||||
UpdateMemberWallet( member_id, wallet_id,x["amount"].Long(), payment_id); // correct this dont send amount
|
||||
x["flags"] = FLAG_OK; x["flags"].set_valid( true );
|
||||
x["payment_id"] = payment_id; x["payment_id"].set_valid( true );
|
||||
pgsql_exec("UPDATE members_payments SET flags = %lu WHERE id = %lu",x["flags"].Long(),payment_id );
|
||||
@@ -393,8 +594,11 @@ long WrenchContractPayment( CVars in, CVars &out )
|
||||
return PHP_API_BAD_PARAM; }
|
||||
|
||||
|
||||
|
||||
|
||||
CVars vw;
|
||||
vw["currency"] = "NAIRA"; // this might become a variable based on the country
|
||||
vw["currency"].set_valid( true );
|
||||
long wallet_id = CheckWallet(in["member_id"].Long(),vw);
|
||||
|
||||
|
||||
/*
|
||||
// TEST FOR DUPLICATE
|
||||
@@ -432,9 +636,12 @@ long WrenchContractPayment( CVars in, CVars &out )
|
||||
ret = PHP_CREATED_OK;
|
||||
x["flags"] = FLAG_START; x["flags"].set_valid( true ); // done not completed yet
|
||||
// now generate the confirmation
|
||||
pgsql_exec("UPDATE members SET balance=balance + %lu WHERE id = %lu",x["amount"].Long(),x["member_id"].Long() ); // pay attention to who you pay here
|
||||
//pgsql_exec("UPDATE members SET balance=balance + %lu WHERE id = %lu",x["amount"].Long(),x["member_id"].Long() ); // pay attention to who you pay here
|
||||
char confirmation[15] = "";
|
||||
Confirmation(payment_id, confirmation, sizeof (confirmation)); // this stamp the offer code directly in that call
|
||||
Confirmation(payment_id, confirmation, sizeof (confirmation)); // this stamp the offer code directly in that call
|
||||
|
||||
UpdateMemberWallet( x["member_id"].Long(), wallet_id,x["amount"].Long(), payment_id); // correct this dont send amount
|
||||
|
||||
x["flags"] = FLAG_OK; x["flags"].set_valid( true );
|
||||
x["payment_id"] = payment_id; x["payment_id"].set_valid( true );
|
||||
pgsql_exec("UPDATE members_payments SET flags = %lu WHERE id = %lu",x["flags"].Long(),payment_id );
|
||||
@@ -496,6 +703,11 @@ Foreign-key constraints:
|
||||
REQ_LONG( in, "dir", 1, -1 );
|
||||
REQ_LONG( in, "sendmoney_id", 1, -1 );
|
||||
|
||||
CVars vw;
|
||||
vw["currency"] = "NAIRA"; // this might become a variable based on the country
|
||||
vw["currency"].set_valid( true );
|
||||
long wallet_id = CheckWallet(in["member_id"].Long(),vw);
|
||||
|
||||
|
||||
long retDb = load_db_record( out, "SELECT balance AS curr_balance FROM members WHERE id = %lu", in["member_id"].Long());
|
||||
|
||||
@@ -553,27 +765,22 @@ Foreign-key constraints:
|
||||
out["status"] = "Failure to create";
|
||||
return PHP_API_BAD_PARAM;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
out["payment_id"] = payment_id; out["payment_id"].set_valid( true );
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
if (payment_id) {
|
||||
ret = PHP_CREATED_OK;
|
||||
|
||||
x["flags"] = FLAG_START; x["flags"].set_valid( true ); // done not completed yet
|
||||
// now generate the confirmation
|
||||
pgsql_exec("UPDATE members SET balance=balance - %lu WHERE id = %lu",in["amount"].Long() + in["fee"].Long(),in["member_id"].Long() );
|
||||
//pgsql_exec("UPDATE members SET balance=balance - %lu WHERE id = %lu",in["amount"].Long() + in["fee"].Long(),in["member_id"].Long() );
|
||||
DeductMemberWallet(in["member_id"].Long(), wallet_id,in["amount"].Long() + in["fee"].Long(), payment_id);
|
||||
char confirmation[15] = "";
|
||||
Confirmation(payment_id, confirmation, sizeof (confirmation)); // this stamp the offer code directly in that call
|
||||
x["flags"] = FLAG_OK; x["flags"].set_valid( true );
|
||||
x["payment_id"] = payment_id; x["payment_id"].set_valid( true );
|
||||
pgsql_exec("UPDATE members_payments SET flags = %lu WHERE id = %lu",x["flags"].Long(),payment_id );
|
||||
load_db_record( out, "SELECT * FROM members_payments WHERE id = %lu ", payment_id );
|
||||
ret = PHP_CREATED_OK;
|
||||
|
||||
load_db_record( out, "SELECT * FROM members_payments WHERE id = %lu ", payment_id );
|
||||
} else {
|
||||
out["status"] = "Uanble to create payment";
|
||||
}
|
||||
|
||||
@@ -10,6 +10,9 @@
|
||||
#include "pgsql.h"
|
||||
#include "pgsql_wrapper.h"
|
||||
#include <curl/curl.h>
|
||||
#include "email.h"
|
||||
#include "payments.h"
|
||||
#include "common_tool.h"
|
||||
|
||||
long smoney_calls(CVars in, CVars &out) {
|
||||
logfmt(logINFO, "smoney_calls()");
|
||||
@@ -130,11 +133,17 @@ long member_sendmoney_fee(CVars in, CVars &out) {
|
||||
return out["processing_fee"].Long();
|
||||
}
|
||||
|
||||
long WRB_doServiceTransferComplete(CVars in, CVars &out);
|
||||
long do_transferPayment(CVars in) ;
|
||||
long INTW_configure(CVars in, CVars &out) ;
|
||||
|
||||
long member_sendmoney(CVars in, CVars &out) {
|
||||
//plog->SetFileName( PREFIX"/logs/member_sendmoney.log" );
|
||||
//return INTW_doServiceTransfer(in, out);
|
||||
return -1L;
|
||||
//return 0;
|
||||
long ret = WRB_doServiceTransferComplete(in, out);
|
||||
|
||||
logfmt(logINFO, "************************ E****** member_sendmoney(CVars in, CVars out) =%lu",ret);
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
long member_addrecipient(CVars in, CVars &out) {
|
||||
@@ -233,3 +242,367 @@ Referenced by:
|
||||
|
||||
|
||||
|
||||
long INTW_configure(CVars in, CVars &out) {
|
||||
logfmt(logINFO, "long INTW_configure(CVars in, CVars &out)");
|
||||
long ret = PHP_API_BAD_PARAM;
|
||||
try {
|
||||
// Configure Interswitch SSL
|
||||
|
||||
|
||||
out["interswitch_ver"] = CfgReadLong("interswitch.version");
|
||||
out["interswitch_sep"] = CfgReadChar("interswitch.soap_endpoint");
|
||||
out["interswitch_tid"] = CfgReadChar("interswitch.terminal_id");
|
||||
out["interswitch_code"] = CfgReadChar("interswitch.entity_code");
|
||||
out["interswitch_mkey"] = CfgReadChar("interswitch.master_key");
|
||||
out["interswitch_pin"] = CfgReadChar("interswitch.pin");
|
||||
out["interswitch_pfix"] = CfgReadChar("interswitch.prefix");
|
||||
out["interswitch_keyf"] = CfgReadChar("interswitch.keyfile");
|
||||
out["interswitch_pass"] = CfgReadChar("interswitch.password");
|
||||
out["interswitch_cert"] = CfgReadChar("interswitch.cacert");
|
||||
|
||||
ret = PHP_API_OK;
|
||||
|
||||
} catch (bad_parameter) {
|
||||
|
||||
out["status"] = "Bad parameter";
|
||||
|
||||
} catch (...) {
|
||||
|
||||
out["status"] = "Unhandled exception in INTW_configure";
|
||||
|
||||
}
|
||||
logfmt(logINFO, "/long INTW_configure(CVars in, CVars &out)");
|
||||
return ret;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
long do_transferPayment(CVars in) {
|
||||
long ret = PHP_API_BAD_PARAM;
|
||||
CVars out;
|
||||
|
||||
long customer_id = REQ_LONG(in, "customer_id", 1, -1);
|
||||
long transfer_id = REQ_LONG(in, "transfer_id", 1, -1);
|
||||
long payMode = REQ_LONG(in, "mode", 1, -1);
|
||||
long payment_id = 0;
|
||||
long amount = 0;
|
||||
long fee = 0;
|
||||
long total = 0;
|
||||
|
||||
|
||||
/*
|
||||
CREATE TABLE sendmoney_payment
|
||||
(
|
||||
id serial NOT NULL,
|
||||
transfer_mode integer NOT NULL,
|
||||
customer_id INT REFERENCES customer(id),
|
||||
transfer_id INT REFERENCES interswitch_money_transfer(id),
|
||||
amount integer DEFAULT 0,
|
||||
fee integer DEFAULT 0,
|
||||
total integer DEFAULT 0,
|
||||
current_balance integer DEFAULT 0,
|
||||
new_balance integer DEFAULT 0,
|
||||
status integer DEFAULT 1,
|
||||
added TIMESTAMP DEFAULT NOW()
|
||||
);
|
||||
*/
|
||||
|
||||
ret = load_db_record(out, "SELECT balance FROM members WHERE id = %lu AND status = 1", customer_id);
|
||||
if (ret < 1L) {
|
||||
throw new bad_parameter(out, "senderid");
|
||||
}
|
||||
|
||||
if (payMode == PAYMENT_MODE) {
|
||||
amount = REQ_LONG(in, "amount", 1, -1);
|
||||
fee = REQ_LONG(in, "fee", 1, -1);
|
||||
total = amount + fee; // make sure you are cent here
|
||||
|
||||
if (out["balance"].Long() >= total) // do you have this money
|
||||
{
|
||||
CVars x;
|
||||
x["transfer_mode"] = PAYMENT_MODE;
|
||||
x["transfer_mode"].set_valid(true);
|
||||
x["member_id"] = customer_id;
|
||||
x["member_id"].set_valid(true);
|
||||
x["transfer_id"] = transfer_id;
|
||||
x["transfer_id"].set_valid(true);
|
||||
x["amount"] = amount;
|
||||
x["amount"].set_valid(true);
|
||||
x["fee"] = fee;
|
||||
x["fee"].set_valid(true);
|
||||
x["total"] = total;
|
||||
x["total"].set_valid(true);
|
||||
x["current_balance"] = out["balance"];
|
||||
x["current_balance"].set_valid(true);
|
||||
payment_id = 0;
|
||||
|
||||
out["payment_id"] = insert_db_record(DBS_VALID, "sendmoney_payment", "sendmoney_payment_id_seq", x);
|
||||
char confirmation[20] = "";
|
||||
Confirmation(payment_id, confirmation, sizeof (confirmation));
|
||||
|
||||
|
||||
|
||||
|
||||
ret = PHP_API_BAD_PARAM; // it is still a failure if we get here and did not take the money out of the balance
|
||||
|
||||
CVars y;
|
||||
y["member_id"] = x["member_id"];
|
||||
y["member_id"].set_valid(true);
|
||||
y["sendmoney_id"] = x["transfer_id"];
|
||||
y["sendmoney_id"].set_valid(true);
|
||||
y["code"] = "SMPAY";
|
||||
y["code"].set_valid(true);
|
||||
y["dir"] = DIR_TARGET;
|
||||
y["dir"].set_valid(true);
|
||||
//y["payment_id"] = out["payment_id"]; y["payment_id"].set_valid( true );
|
||||
|
||||
ret = WrenchSendMoneyPayment(y, out);
|
||||
|
||||
if (ret == PHP_CREATED_OK) {
|
||||
load_db_record(out, "SELECT balance AS new_balance FROM members WHERE id = %lu", customer_id);
|
||||
pgsql_exec("UPDATE sendmoney_payment SET new_balance=%lu WHERE id=%lu", out["new_balance"].Long(), out["payment_id"].Long());
|
||||
ret = PHP_API_OK;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (payMode == REFUND_MODE) {
|
||||
if (load_db_record(out, "SELECT * FROM sendmoney_payment WHERE transfer_id = %lu AND member_id = %lu", transfer_id, customer_id)) {
|
||||
logfmt(logINFO, "*****WE RE DO VERIFICATION and NO DUPLICATES)");
|
||||
logfmt(logINFO, "**)");
|
||||
logfmt(logINFO, "**)");
|
||||
logfmt(logINFO, "**)");
|
||||
logfmt(logINFO, "**)");
|
||||
logfmt(logINFO, "**)");
|
||||
logfmt(logINFO, "**)");
|
||||
logfmt(logINFO, "**)");
|
||||
logfmt(logINFO, "**)");
|
||||
CVars out;
|
||||
/*REQ_STRING( in, "TransferCode", 3, 30, "(.*)" );
|
||||
REQ_STRING( in, "requestReference", 3, 30, "(.*)" );*/
|
||||
|
||||
//int vRet = INTW_querySendMoneyTransaction(in, out);
|
||||
ret = PHP_API_OK;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
//PAYMENT_MODE
|
||||
//REFUND_MODE
|
||||
|
||||
return ret;
|
||||
}
|
||||
//*****************************************************************************/
|
||||
|
||||
long WRB_doServiceTransferComplete(CVars in, CVars &out) {
|
||||
//plog->SetFileName( PREFIX"/logs/send_money.log" );
|
||||
|
||||
logfmt(logINFO, "long WRB_doServiceTransferComplete(CVars in, CVars &out)");
|
||||
long ret = PHP_API_BAD_PARAM;
|
||||
try {
|
||||
|
||||
out = in;
|
||||
// Initiate interswitch session
|
||||
CVars setup;
|
||||
INTW_configure(in, setup);
|
||||
|
||||
|
||||
in["action"].set_valid(false);
|
||||
REQ_STRING(in, "InitiatingEntityCode", 3, 3, "(.*)");
|
||||
REQ_LONG(in, "InitiatingAmount", 1, -1);
|
||||
REQ_LONG(in, "Fee", 1, -1);
|
||||
REQ_LONG(in, "InitiatingChannel", 1, -1);
|
||||
REQ_STRING(in, "InitiatingPaymentMethodCode", 2, 2, "(.*)");
|
||||
REQ_STRING(in, "InitiatingCurrencyCode", 3, 3, "(.*)");
|
||||
REQ_STRING(in, "TerminatingPaymentMethodCode", 2, 2, "(.*)");
|
||||
REQ_LONG(in, "TerminatingAmount", 1, -1);
|
||||
REQ_STRING(in, "TerminatingCurrencyCode", 3, 3, "(.*)");
|
||||
REQ_STRING(in, "TerminatingCountryCode", 2, 2, "(.*)");
|
||||
|
||||
//REQ_STRING( in, "TerminatingEntityCode", 1, 5, "(.*)" );
|
||||
//REQ_STRING( in, "TerminatingAccountNumber", 1, 50, "(.*)" );
|
||||
//REQ_STRING( in, "TerminatingAccountType", 2, 2, "(.*)" );
|
||||
|
||||
long senderid = REQ_LONG(in, "senderid", 1, -1);
|
||||
long recipientid = REQ_LONG(in, "recipientid", 1, -1);
|
||||
|
||||
in["InitiatingEntityCode"] = "MBA";
|
||||
in["InitiatingEntityCode"].set_valid(true);
|
||||
|
||||
|
||||
CVars sender; // Load sender
|
||||
ret = load_db_record(sender, "SELECT firstname,lastname,balance FROM members WHERE id = %lu AND status = 1", senderid);
|
||||
if (ret < 1L) {
|
||||
throw new bad_parameter(out, "senderid");
|
||||
}
|
||||
|
||||
long LongTotalCost = in["Fee"].Long() + in["TerminatingAmount"].Long() + 0;
|
||||
|
||||
if (sender["balance"].Long() < LongTotalCost) {
|
||||
throw new bad_parameter(out, "insufficient balance for transaction");
|
||||
}
|
||||
|
||||
|
||||
|
||||
CVars recipient; // Load recipient
|
||||
/*recipient["firstname"] = in["firstname"]; recipient["firstname"].set_valid( true );
|
||||
recipient["lastname"] = in["lastname"]; recipient["lastname"].set_valid( true );
|
||||
recipient["account_no"] = in["account_no"]; recipient["account_no"].set_valid( true );
|
||||
recipient["bank_code"] = in["bank_code"]; recipient["bank_code"].set_valid( true );
|
||||
recipient["account_type"] = in["account_type"]; recipient["account_type"].set_valid( true );*/
|
||||
ret = load_db_record(recipient, "SELECT firstname,lastname,account_no,bank_code,account_type FROM sendmoney_recipient WHERE id = %lu AND member_id = %lu AND status = 1", recipientid, senderid);
|
||||
if (ret < 1L) {
|
||||
throw new bad_parameter(out, "recipientid");
|
||||
}
|
||||
|
||||
in["TerminatingEntityCode"] = recipient["bank_code"];
|
||||
in["TerminatingEntityCode"].set_valid(true);
|
||||
in["TerminatingAccountNumber"] = recipient["account_no"];
|
||||
in["TerminatingAccountNumber"].set_valid(true);
|
||||
in["transactionID"] = in["transaction_id"];
|
||||
in["transactionID"].set_valid(true);
|
||||
|
||||
CVars inx;
|
||||
inx["Fee"] = in["Fee"];
|
||||
inx["Fee"].set_valid(true);
|
||||
inx["InitiatingAmount"] = in["InitiatingAmount"];
|
||||
inx["InitiatingAmount"].set_valid(true);
|
||||
|
||||
inx["InitiatingChannel"] = in["InitiatingChannel"];
|
||||
inx["InitiatingChannel"].set_valid(true);
|
||||
inx["InitiatingCurrencyCode"] = in["InitiatingCurrencyCode"];
|
||||
inx["InitiatingCurrencyCode"].set_valid(true);
|
||||
|
||||
inx["InitiatingEntityCode"] = in["InitiatingEntityCode"];
|
||||
inx["InitiatingEntityCode"].set_valid(true);
|
||||
inx["InitiatingPaymentMethodCode"] = in["InitiatingPaymentMethodCode"];
|
||||
inx["InitiatingPaymentMethodCode"].set_valid(true);
|
||||
|
||||
inx["TerminatingAccountNumber"] = in["TerminatingAccountNumber"];
|
||||
inx["TerminatingAccountNumber"].set_valid(true);
|
||||
inx["TerminatingAmount"] = in["TerminatingAmount"];
|
||||
inx["TerminatingAmount"].set_valid(true);
|
||||
|
||||
inx["TerminatingCountryCode"] = in["TerminatingCountryCode"];
|
||||
inx["TerminatingCountryCode"].set_valid(true);
|
||||
inx["TerminatingCurrencyCode"] = in["TerminatingCurrencyCode"];
|
||||
inx["TerminatingCurrencyCode"].set_valid(true);
|
||||
|
||||
inx["TerminatingEntityCode"] = in["TerminatingEntityCode"];
|
||||
inx["TerminatingEntityCode"].set_valid(true);
|
||||
inx["TerminatingPaymentMethodCode"] = in["TerminatingPaymentMethodCode"];
|
||||
inx["TerminatingPaymentMethodCode"].set_valid(true);
|
||||
|
||||
inx["recipientid"] = in["recipientid"];
|
||||
inx["recipientid"].set_valid(true);
|
||||
inx["member_id"] = in["senderid"];
|
||||
inx["member_id"].set_valid(true);
|
||||
inx["transactionID"] = in["transactionID"];
|
||||
inx["transactionID"].set_valid(true);
|
||||
|
||||
inx["transfer_code"] = "";
|
||||
inx["transfer_code"].set_valid(true);
|
||||
|
||||
|
||||
out["money_transfer_id"] = insert_db_record(DBS_VALID, "money_transfer", " money_transfer_id_seq", inx);
|
||||
if (out["money_transfer_id"].Long() < 1L) {
|
||||
throw new runtime_error("Failed to create money transfer record");
|
||||
}
|
||||
|
||||
const PGresult *res = pgsql_query("SELECT * FROM money_transfer WHERE id=%lu AND member_id = %lu", out["money_transfer_id"].Long(), in["member_id"].Long());
|
||||
if (res != NULL && pgsql_num_rows(res) > 0) {
|
||||
|
||||
} else {
|
||||
throw new runtime_error("Failed to create money_transfer record");
|
||||
}
|
||||
|
||||
CVars transaction;
|
||||
transaction["detail_id"] = out["money_transfer_id"];
|
||||
transaction["detail_id"].set_valid(true);
|
||||
transaction["type"] = 2L;
|
||||
/* DoTransfer */ transaction["type"].set_valid(true);
|
||||
out["transaction_id"] = insert_db_record(DBS_VALID, "money_transfer_transaction", "money_transfer_transaction_id_seq", transaction);
|
||||
if (out["transaction_id"].Long() < 1L) {
|
||||
throw new runtime_error("Failed to create money_transfer_transaction record");
|
||||
}
|
||||
CVars transaction_final;
|
||||
|
||||
char xtid[12], uniqueRef[20];
|
||||
memset(uniqueRef, 0, 20);
|
||||
// TransferCode - RequestReference - UniqueRef => request prefix for terminal owner + ID
|
||||
sprintf(uniqueRef, "%s%s000000", setup["interswitch_pfix"].c_str(), out["transaction_id"].c_str());
|
||||
//sprintf( uniqueRef, "%s%-09lu", setup["interswitch_pfix"].c_str(), out["transaction_id"].Long() );
|
||||
|
||||
transaction["transfer_code"] = uniqueRef;
|
||||
transaction["transfer_code"].set_valid(true);
|
||||
transaction_final["transfer_code"] = transaction["transfer_code"];
|
||||
transaction_final["transfer_code"].set_valid(true);
|
||||
|
||||
pgsql_exec("UPDATE money_transfer SET transfer_code='%s' WHERE id=%lu", transaction_final["transfer_code"].c_str(), out["money_transfer_id"].Long());
|
||||
|
||||
//sprintf( xtid, "%s", setup["interswitch_tid"].c_str() );
|
||||
sprintf(xtid, "%s", setup["interswitch_tid"].c_str());
|
||||
|
||||
|
||||
//in["SenderEmail"] = sender["email"]; in["SenderEmail"].set_valid(true);
|
||||
//in["BeneficiaryEmail"] = recipient["email"]; in["BeneficiaryEmail"].set_valid(true);
|
||||
|
||||
//*TAKE THE MONEY NOW
|
||||
CVars pm;
|
||||
pm["customer_id"] = senderid;
|
||||
pm["customer_id"].set_valid(true);
|
||||
pm["transfer_id"] = out["money_transfer_id"];
|
||||
pm["transfer_id"].set_valid(true);
|
||||
pm["amount"] = in["InitiatingAmount"];
|
||||
pm["amount"].set_valid(true);
|
||||
pm["fee"] = in["Fee"];
|
||||
pm["fee"].set_valid(true);
|
||||
pm["mode"] = PAYMENT_MODE;
|
||||
pm["mode"].set_valid(true);
|
||||
|
||||
/*
|
||||
#define SM_PENDING 1
|
||||
#define SM_CANCEL 3
|
||||
#define SM_FAILED 4
|
||||
#define SM_COMPLETED 5
|
||||
*/
|
||||
if (do_transferPayment(pm) == PHP_API_OK) {
|
||||
out["sendmoney_status"] = SM_PENDING;
|
||||
in["sendmoney_id"] = out["money_transfer_id"];
|
||||
ret = PHP_API_OK;
|
||||
sendmoney_email(SM_PENDING, in, out);
|
||||
// all is good on money side
|
||||
logfmt(logINFO, "*** ALL Good ------ ****** ");
|
||||
} else {
|
||||
out["sendmoney_status"] = SM_FAILED;
|
||||
throw new runtime_error("Failed to create payment record");
|
||||
}
|
||||
|
||||
load_db_record(out, "SELECT r.firstname, r.lastname, m.*,mp.confirmation,r.firstname||' '||r.lastname AS Recitient,r.account_no,b.name AS bank_name FROM money_transfer m LEFT JOIN members_payments mp ON mp.what_sendmoney = m.id LEFT JOIN sendmoney_recipient r ON r.id = m.recipientid LEFT JOIN bank_entity_codes b ON b.code = r.bank_code WHERE m.id=%lu", out["money_transfer_id"].Long());
|
||||
|
||||
} catch (runtime_error& ex) {
|
||||
|
||||
out["status"] = ex.what();
|
||||
ret = PHP_API_BAD_PARAM;
|
||||
|
||||
} catch (bad_parameter) {
|
||||
|
||||
out["status"] = "Invalid input";
|
||||
ret = PHP_API_BAD_PARAM;
|
||||
|
||||
} catch (...) {
|
||||
|
||||
out["status"] = "Unhandled exception in INTW_doTransfer";
|
||||
ret = PHP_API_BAD_PARAM;
|
||||
|
||||
}
|
||||
|
||||
//out["wallet"].set_valid( false );
|
||||
|
||||
logfmt(logINFO, "/long WRB_doServiceTransferComplete(CVars in, CVars &out)");
|
||||
return ret;
|
||||
|
||||
}
|
||||
|
||||
@@ -294,10 +294,9 @@ long stripe_charge_member_paymentid(CVars in, CVars &out) {
|
||||
logfmt(logINFO, "stripe_charge_member_paymentid()");
|
||||
out["result"] = "stripe_charge_member_paymentid() call in progress...";
|
||||
long res, ret = PHP_API_BAD_PARAM;
|
||||
|
||||
|
||||
try {
|
||||
REQ_LONG(in, "service_id", 0, -1);
|
||||
// REQ_LONG(in, "service_id", 0, -1);
|
||||
// REQ_LONG(in, "payment_id", 0, -1);
|
||||
REQ_LONG(in, "member_id", 0, -1);
|
||||
long payment_id = REQ_LONG(in, "payment_id", 0, -1);
|
||||
|
||||
@@ -318,7 +317,7 @@ long stripe_charge_member_paymentid(CVars in, CVars &out) {
|
||||
return ret;
|
||||
}
|
||||
*/
|
||||
in["description"] = "Laundry Pickup";
|
||||
in["description"] = "Account Recharge";
|
||||
in["invoice_id"] = in["payment_id"];
|
||||
|
||||
|
||||
@@ -350,7 +349,10 @@ long stripe_charge_member_paymentid(CVars in, CVars &out) {
|
||||
ret = PHP_API_OK;
|
||||
out["id"] = id;
|
||||
pgsql_exec("UPDATE members_payments SET stripe_confirm='%s',dt_confirmed=now() WHERE id = %lu", id, payment_id);
|
||||
//pgsql_exec("UPDATE members_service_request SET payment_id=%lu,dt_confirmed=now(),flags=%lu WHERE id = %lu",payment_id, CONFIRMED , in["service_id"].Long());
|
||||
/*
|
||||
|
||||
|
||||
*/
|
||||
|
||||
out["result"] = "Charge success";
|
||||
} else {
|
||||
|
||||
+89
-3
@@ -1,4 +1,90 @@
|
||||
<?
|
||||
<?php
|
||||
|
||||
function excudedEmails(){
|
||||
return [
|
||||
'ses6681+1@gmail.com',
|
||||
'tokslawus@gmail.com',
|
||||
'ses6681+1@gmail.com',
|
||||
'ameye@chiefsoft.com',
|
||||
'ses66181@gmail.com',
|
||||
];
|
||||
}
|
||||
|
||||
if (in_array("ses6681+3@gmail.com", excudedEmails()))
|
||||
{
|
||||
echo "found";
|
||||
}
|
||||
else
|
||||
{
|
||||
echo "not found";
|
||||
}
|
||||
|
||||
exit;
|
||||
|
||||
|
||||
/*
|
||||
$ar1 = [
|
||||
"color" => "red",
|
||||
"sex" => "male",
|
||||
];
|
||||
|
||||
|
||||
$ar2 = ["color" => "green", ];
|
||||
$result = array_merge_recursive($ar1, $ar2);
|
||||
print_r($result);*/
|
||||
print_r( spaTranslationsCall());
|
||||
|
||||
|
||||
function spaTranslationsCall()
|
||||
{
|
||||
return array_merge_recursive(spaTranslations(),[
|
||||
'hide_boards' => 'Hide Boards',
|
||||
'draw_numbers' => 'Draw Number(s)',
|
||||
'next_draw' => 'Next Draw',
|
||||
]);
|
||||
|
||||
}
|
||||
|
||||
|
||||
function spaTranslations(){
|
||||
return [
|
||||
'cart_title' => 'Below you can review and adjust the games you have added',
|
||||
'cart_subtitle' => 'Select a row to see more details',
|
||||
'cart_empty' => 'Your cart is empty.',
|
||||
'cart_summary_title' => 'Below are the entries you purchased!',
|
||||
'cart_summary_title_fail' => 'Your transaction could not be completed, please try again.',
|
||||
'cart_summary_title_some_fail' => 'Some tickets could not be played, please return to cart and try again.',
|
||||
'show_boards' => 'Expand to display boards',
|
||||
'board' => 'Board',
|
||||
'week' => 'Week',
|
||||
'current_shopping_cart_total' => 'Your current Shopping Cart total is',
|
||||
'subtotal' => 'Subtotal',
|
||||
'discount' => 'Discount',
|
||||
'voucher_discount' => 'Voucher Discount',
|
||||
'total' => 'Total',
|
||||
'clear_cart_confirmation' => 'Do you realy want to empty your cart?',
|
||||
'cart_delete_confirmation' => 'Do you really want to delete this cart item?',
|
||||
'number_of_draws' => 'Multi draws',
|
||||
'ticket_update' => 'Update Ticket',
|
||||
'ticket_updated' => 'Your ticket was Updated, return to cart to replay.',
|
||||
'ticket_id' => 'Ticket ID',
|
||||
'wager_id' => 'Wager ID',
|
||||
'next_draw' => 'Next draw',
|
||||
'btn_continue_playing' => 'Continue Playing',
|
||||
'cart_draw_date' => 'Date',
|
||||
'details_date_at' => 'at',
|
||||
'details_date_from' => 'from',
|
||||
'details_date_to' => 'to',
|
||||
'no_of_draws' => 'No of Draws',
|
||||
'handling_fee' => 'Handling Fee',
|
||||
'price_details_title' => 'Price Details',
|
||||
'cart_item_price' => 'Price',
|
||||
'details_total' => 'Total',
|
||||
'system_played' => 'System',
|
||||
];
|
||||
}
|
||||
|
||||
|
||||
$USER = $_SERVER['SCRIPT_FILENAME'];
|
||||
$USER = str_replace('/home', '', $USER);
|
||||
$USER = strtok($USER, '/');
|
||||
@@ -7,6 +93,6 @@ $USER = strtok($USER, '/');
|
||||
$wrenchboard_class = 'wrenchboard_api_' . $USER . '\\WrenchBoard';
|
||||
$wrenchboard = new $wrenchboard_class();
|
||||
$ret = $wrenchboard->wrenchboard_api($in,$out);
|
||||
var_dump($ret);
|
||||
phpinfo();
|
||||
//var_dump($ret);
|
||||
//phpinfo();
|
||||
?>
|
||||
|
||||
+2
-1
@@ -11,13 +11,14 @@ $wrenchboard = new $wrenchboard_class();
|
||||
|
||||
|
||||
|
||||
Array ( [title] => Re:Week 1 CAT 2: “Muddiest” Point [description] => sffss [timeline] => 3 [job_detail] => sgsagsagashas [price] => 5000 [action] => 0 )
|
||||
//Array ( [title] => Re:Week 1 CAT 2: “Muddiest” Point [description] => sffss [timeline] => 3 [job_detail] => sgsagsagashas [price] => 5000 [action] => 0 )
|
||||
|
||||
|
||||
$data['firstname'] = 'Olu';
|
||||
$data['lastname'] = 'Amey';
|
||||
|
||||
$email = 'ses66181+1@gmail.com';
|
||||
$email = 'acidumirae@gmail.com';
|
||||
$data['email'] = $email;
|
||||
$data['username'] = $email;
|
||||
$data['password'] = 'may12002';
|
||||
|
||||
@@ -3,9 +3,11 @@
|
||||
require_once 'config.php';
|
||||
$url = $local_url . "/createuser";
|
||||
|
||||
$username = urlencode("ses66181+" . rand(1000, 9999) . "@gmail.com");
|
||||
$username = urlencode("jubaworker+" . rand(1000, 9999) . "@gmail.com");
|
||||
|
||||
$username = "ses66181+" . rand(1000, 9999) . "@gmail.com";
|
||||
$username = "jubaworker+" . rand(1000, 9999) . "@gmail.com";
|
||||
$username = "ameye+auto" . rand(1000, 9999) . "@chiefsoft.com";
|
||||
//$username = "ses66181+" . rand(1000, 9999) . "@gmail.com";
|
||||
$phone = (rand(1, 2) > 1) ? "770222" . rand(2222, 9999) : '';
|
||||
|
||||
include 'sample_data.php'; // just for sample data
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
<pre>
|
||||
<?php
|
||||
//#define WRENCHBOARD_USER_ADNEWCC 11054
|
||||
|
||||
include('../backend.php');
|
||||
$hostname = $wrenchboard->cfgReadChar("database.host");
|
||||
@@ -16,7 +17,7 @@ $in=array(
|
||||
"action" => 90005, /* WRENCHBOARD_STRIPE_CHARGE_NEW */
|
||||
"ccnum" => "4242424242424242",
|
||||
"ccexpm" => "12",
|
||||
"ccexpy" => "18",
|
||||
"ccexpy" => "26",
|
||||
"cccvc" => "123",
|
||||
"amount" => "100",
|
||||
"customer_id" => $f["id"],
|
||||
|
||||
@@ -92,7 +92,7 @@ define('PHP_API_OK', 0);
|
||||
define('PHP_LOGIN_OK', 100);
|
||||
define('PHP_CREATED_OK', 10);
|
||||
define('PHP_API_BAD_PARAM', -1);
|
||||
define('SESSION_TIMEOUT_LOGOUT',72000);
|
||||
define('SESSION_TIMEOUT_LOGOUT',144000);
|
||||
|
||||
define('SUPPORT_PHONE','+234 (818)-3866434');
|
||||
|
||||
@@ -155,6 +155,7 @@ define('WRENCHBOARD_RESEND_PENDING_LINK', 11019);
|
||||
define('WRENCHBOARD_ACCOUNT_CREATEACC', 11020);
|
||||
define('WRENCHBOARD_ACCOUNT_LOGIN', 11025);
|
||||
define('WRENCHBOARD_FACEBOOK_LOGIN', 11026);
|
||||
define('WRENCHBOARD_GOOGLE_LOGIN', 11027);
|
||||
define('WRENCHBOARD_SEND_CONTACTUS', 11030);
|
||||
define('WRENCHBOARD_ACCOUNT_SENDREFER',11032);
|
||||
define('WRENCHBOARD_ACCOUNT_REFERLINK',11033);
|
||||
@@ -169,6 +170,13 @@ define('WRENCHBOARD_LOG_MEMBER', 11040);
|
||||
define('WRENCHBOARD_DELETE_RECACC', 11041);
|
||||
define('WRENCHBOARD_SAVE_GALLERY', 11042);
|
||||
|
||||
define('WRENCHBOARD_USER_ADNEWCC', 11054);
|
||||
define('WRENCHBOARD_USER_USESAVEDCC', 11056);
|
||||
|
||||
define('WRENCHBOARD_USER_SETTINGS', 11058);
|
||||
|
||||
|
||||
define('WRENCHBOARD_USER_DELETEACC', 11990);
|
||||
define('WRENCHBOARD_ACCOUNT_END', 11999);
|
||||
//**************************************************************
|
||||
define('WRENCHBOARD_JOB_CREATEJOB',13010 );
|
||||
@@ -269,3 +277,7 @@ define('PAY_MODE_BONUS', 9);
|
||||
define('APPROVED_BALANCE', 5);
|
||||
define('DISAPROVE_BALANCE', 3);
|
||||
|
||||
|
||||
define('WRENCHBOARD_USER_SENDMONEY', 11051);
|
||||
|
||||
|
||||
|
||||
@@ -49,7 +49,9 @@ defined('BASEPATH') OR exit('No direct script access allowed');
|
||||
| Examples: my-controller/index -> my_controller/index
|
||||
| my-controller/my-method -> my_controller/my_method
|
||||
*/
|
||||
$route['default_controller'] = 'site';
|
||||
$route['default_controller'] = 'login';
|
||||
$route['404_override'] = 'Wrb404';
|
||||
$route['translate_uri_dashes'] = FALSE;
|
||||
$route['auth/(.+)'] = 'home/auth/$1';
|
||||
|
||||
$route['cardreciepts/(.+)'] = 'paymnt/cardreciepts/$1';
|
||||
|
||||
@@ -6,7 +6,8 @@ class Bko extends CI_Controller {
|
||||
|
||||
public function index() {
|
||||
$data["username"] = "";
|
||||
$this->load->view('bko/view_bko_login', $data);
|
||||
//$this->load->view('bko/view_bko_login', $data);
|
||||
echo '';
|
||||
}
|
||||
|
||||
public function logout() {
|
||||
|
||||
@@ -25,7 +25,8 @@ class Bkotransaction extends Bko_Controller {
|
||||
$mysql = "SELECT m.id,mp.confirmation, m.added,me.firstname||' '||me.lastname||'<br>'||me.email AS Sender,"
|
||||
. "sr.firstname||' '||sr.lastname||'<br>ACC:'||sr.account_no||'-'||be.name AS recipient, m.initiatingamount*0.01 AS Amount,m.fee*0.01 AS Fee, "
|
||||
. "'<input type=submit id=\"accs'||m.id||'\" onclick=\"return smoneyDetail('||m.id||')\" name=\"manage\" class=\"btn btn-info btn-sm\" value=\"Detail\">' As Detail, "
|
||||
. "'<input type=submit id=\"acc'||m.id||'\" onclick=\"return smoneyProcess('||m.id||')\" name=\"manage\" class=\"btn btn-info btn-sm\" value=\"Process\">' As Process "
|
||||
. "'<input type=submit id=\"acc'||m.id||'\" onclick=\"return smoneyProcess('||m.id||')\" name=\"manage\" class=\"btn btn-info btn-sm\" value=\"Process\">' As Process, "
|
||||
. "m.initiatingamount AS raw_amount, m.fee AS raw_fee, sr.bank_code, sr.account_no "
|
||||
. "FROM money_transfer m "
|
||||
. "LEFT JOIN members me ON me.id=m.member_id "
|
||||
. "LEFT JOIN sendmoney_recipient sr ON sr.id=m.recipientid "
|
||||
@@ -39,7 +40,7 @@ class Bkotransaction extends Bko_Controller {
|
||||
|
||||
break;
|
||||
|
||||
case 'TRANSDETAIL':
|
||||
case 'TRANSDETAIL':
|
||||
|
||||
$mysql = "SELECT m.id,mp.confirmation, m.added,me.firstname||' '||me.lastname||'<br>'||me.email AS Sender,"
|
||||
. "sr.firstname||' '||sr.lastname||'<br>ACC:'||sr.account_no||'-'||be.name AS recipient, m.initiatingamount*0.01 AS Amount,m.fee*0.01 AS Fee "
|
||||
@@ -65,93 +66,155 @@ class Bkotransaction extends Bko_Controller {
|
||||
|
||||
case 'COMPLETE':
|
||||
//echo 'complete 1';
|
||||
// url: "/bkotransaction/smprocess?proc=COMPLETE&sendmoney_id="+link_id+'&tcode='+tcode+'&tref='+tref
|
||||
// url: "/bkotransaction/smprocess?proc=COMPLETE&sendmoney_id="+link_id+'&tcode='+tcode+'&tref='+tref
|
||||
$data["trans_code"] = $this->input->get('tcode');
|
||||
$data["trans_tref"] = $this->input->get('tref');
|
||||
$data["sendmoney_id"] = $sendmoney_id;
|
||||
$data['action'] = WRENCHBOARD_SMONEY_BKOPROC;
|
||||
$data['action_mode'] = SMONEY_PROCC_MANUAL;
|
||||
$this->load->model('backend_model');
|
||||
$out = array();
|
||||
$this->backend_model->wrenchboard_api($data, $out);
|
||||
echo $out['status'];
|
||||
|
||||
|
||||
echo $this->sendmoneyCompletePage($data);
|
||||
|
||||
break;
|
||||
}
|
||||
}
|
||||
protected function sendmoneyCompletePage($data) {
|
||||
$data['action'] = WRENCHBOARD_SMONEY_BKOPROC;
|
||||
$data['action_mode'] = SMONEY_PROCC_MANUAL;
|
||||
$this->load->model('backend_model');
|
||||
$out = array();
|
||||
$this->backend_model->wrenchboard_api($data, $out);
|
||||
return $out['status'];
|
||||
}
|
||||
|
||||
|
||||
public function smTransmitProcess() {
|
||||
// url: "/bkotransaction/smprocess?proc=PROCESS&sendmoney_id="+link_id
|
||||
$proc = $this->input->get('proc');
|
||||
$sendmoney_id = $this->input->get('sendmoney_id');
|
||||
// url: "/bkotransaction/smprocess?proc=PROCESS&sendmoney_id="+link_id
|
||||
$proc = $this->input->get('proc');
|
||||
$sendmoney_id = $this->input->get('sendmoney_id');
|
||||
|
||||
switch ($proc) {
|
||||
case 'PROCESS':
|
||||
$mysql = "SELECT m.id,mp.confirmation, m.added,me.firstname||' '||me.lastname||'<br>'||me.email AS Sender,"
|
||||
. "sr.firstname||' '||sr.lastname||'<br>ACC:'||sr.account_no||'-'||be.name AS recipient, m.initiatingamount*0.01 AS Amount,m.fee*0.01 AS Fee, "
|
||||
. "'<input type=submit id=\"accs'||m.id||'\" onclick=\"return smoneyDetail('||m.id||')\" name=\"manage\" class=\"btn btn-info btn-sm\" value=\"Detail\">' As Detail, "
|
||||
. "'<input type=submit id=\"acc'||m.id||'\" onclick=\"return smoneyProcess('||m.id||')\" name=\"manage\" class=\"btn btn-info btn-sm\" value=\"Process\">' As Process "
|
||||
. "FROM money_transfer m "
|
||||
. "LEFT JOIN members me ON me.id=m.member_id "
|
||||
. "LEFT JOIN sendmoney_recipient sr ON sr.id=m.recipientid "
|
||||
. "LEFT JOIN members_payments mp ON mp.what_sendmoney = m.id "
|
||||
. "LEFT JOIN bank_entity_codes be ON be.code=sr.bank_code WHERE m.id=" . $sendmoney_id;
|
||||
switch ($proc) {
|
||||
case 'PROCESS':
|
||||
$mysql = "SELECT m.id,mp.confirmation, m.added,me.firstname||' '||me.lastname||'<br>'||me.email AS Sender,"
|
||||
. "sr.firstname||' '||sr.lastname||'<br>ACC:'||sr.account_no||'-'||be.name AS recipient, m.initiatingamount*0.01 AS Amount,m.fee*0.01 AS Fee, "
|
||||
. "'<input type=submit id=\"accs'||m.id||'\" onclick=\"return smoneyDetail('||m.id||')\" name=\"manage\" class=\"btn btn-info btn-sm\" value=\"Detail\">' As Detail, "
|
||||
. "'<input type=submit id=\"acc'||m.id||'\" onclick=\"return smoneyProcess('||m.id||')\" name=\"manage\" class=\"btn btn-info btn-sm\" value=\"Process\">' As Process, "
|
||||
. "m.initiatingamount AS raw_amount, m.fee AS raw_fee, sr.bank_code, sr.account_no "
|
||||
. "FROM money_transfer m "
|
||||
. "LEFT JOIN members me ON me.id=m.member_id "
|
||||
. "LEFT JOIN sendmoney_recipient sr ON sr.id=m.recipientid "
|
||||
. "LEFT JOIN members_payments mp ON mp.what_sendmoney = m.id "
|
||||
. "LEFT JOIN bank_entity_codes be ON be.code=sr.bank_code WHERE m.id=" . $sendmoney_id;
|
||||
|
||||
$query = $this->db->query($mysql);
|
||||
$row = $query->row_array();
|
||||
$query = $this->db->query($mysql);
|
||||
$row = $query->row_array();
|
||||
|
||||
echo $this->sendmoneyProcessPage($row);
|
||||
echo $this->sendmoneyProcessPage($row);
|
||||
|
||||
break;
|
||||
break;
|
||||
|
||||
case 'DETAIL':
|
||||
case 'DETAIL':
|
||||
|
||||
echo 'detail';
|
||||
echo 'detail';
|
||||
|
||||
break;
|
||||
break;
|
||||
|
||||
case 'TRANSMIT':
|
||||
//echo 'complete 1';
|
||||
// url: "/bkotransaction/smprocess?proc=COMPLETE&sendmoney_id="+link_id+'&tcode='+tcode+'&tref='+tref
|
||||
$data["trans_code"] = $this->input->get('tcode');
|
||||
$data["trans_tref"] = $this->input->get('tref');
|
||||
$data["sendmoney_id"] = $sendmoney_id;
|
||||
$data['action'] = WRENCHBOARD_SMONEY_BKOPROC;
|
||||
$data['action_mode'] = SMONEY_PROCC_INTERSWITCH;
|
||||
$this->load->model('backend_model');
|
||||
$out = array();
|
||||
$this->backend_model->wrenchboard_api($data, $out);
|
||||
echo $out['status'];
|
||||
|
||||
|
||||
|
||||
break;
|
||||
case 'TRANSMIT':
|
||||
//echo 'complete 1';
|
||||
// url: "/bkotransaction/smprocess?proc=COMPLETE&sendmoney_id="+link_id+'&tcode='+tcode+'&tref='+tref
|
||||
$data["trans_code"] = $this->input->get('tcode');
|
||||
$data["trans_tref"] = $this->input->get('tref');
|
||||
$data["sendmoney_id"] = $sendmoney_id;
|
||||
$mysql = "SELECT m.id,mp.confirmation, m.added,me.firstname||' '||me.lastname||'<br>'||me.email AS sender,
|
||||
sr.firstname||' '||sr.lastname||'<br>ACC:'||sr.account_no||'-'||be.name AS recipient,
|
||||
m.initiatingamount*0.01 AS amount, m.fee*0.01 AS fee,
|
||||
m.initiatingamount AS raw_amount, m.fee AS raw_fee, sr.bank_code, sr.account_no
|
||||
FROM money_transfer m
|
||||
LEFT JOIN members me ON me.id=m.member_id
|
||||
LEFT JOIN sendmoney_recipient sr ON sr.id=m.recipientid
|
||||
LEFT JOIN members_payments mp ON mp.what_sendmoney = m.id
|
||||
LEFT JOIN bank_entity_codes be ON be.code=sr.bank_code WHERE m.id=" . $sendmoney_id;
|
||||
|
||||
$query = $this->db->query($mysql);
|
||||
$row = $query->row_array();
|
||||
|
||||
echo $this->sendmoneyProcessPage($row, $data);
|
||||
/*
|
||||
$data['action'] = WRENCHBOARD_SMONEY_BKOPROC;
|
||||
$data['action_mode'] = SMONEY_PROCC_INTERSWITCH;
|
||||
$this->load->model('backend_model');
|
||||
$out = array();
|
||||
$this->backend_model->wrenchboard_api($data, $out);
|
||||
echo $out['status'];
|
||||
*/
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
private function TransmitSendmoneyProcessPage($out) {
|
||||
|
||||
$myTable = "<form id='sendmoneyProcessPage" . $out['id'] . "' name='sendmoneyProcessPage" . $out['id'] . "'><table class='table table-striped table-hover table-bordered table-condensed'>";
|
||||
$myTable .="<tr><td style='width:100px;'><b>Confirmation</b></td><td>" . $out['confirmation'] . "</td></tr>";
|
||||
$myTable .="<tr><td style='width:100px;'><b>Trx. Date</b></td><td>" . $out['added'] . "</td></tr>";
|
||||
$myTable .="<tr><td style='width:100px;'><b>Sender</b></td><td>" . $out['sender'] . "</td></tr>";
|
||||
$myTable .="<tr><td style='width:100px;'><b>Recipient</b></td><td>" . $out['recipient'] . "</td></tr>";
|
||||
$myTable .="<tr><td style='width:100px;'><b>Amount</b></td><td>" . $out['amount'] . "</td></tr>";
|
||||
$myTable .="<tr><td style='width:100px;'><b>Fee</b></td><td>" . $out['fee'] . "</td></tr>";
|
||||
|
||||
$myTable .="<tr><td style='width:100px;'><b></b></td><td></td></tr>";
|
||||
$myTable .="</table></form> ";
|
||||
$myTable = "<form id='sendmoneyProcessPage" . $out['id'] . "' name='sendmoneyProcessPage" . $out['id'] . "'><table class='table table-striped table-hover table-bordered table-condensed'>";
|
||||
$myTable .="<tr><td style='width:100px;'><b>Confirmation</b></td><td>" . $out['confirmation'] . "</td></tr>";
|
||||
$myTable .="<tr><td style='width:100px;'><b>Trx. Date</b></td><td>" . $out['added'] . "</td></tr>";
|
||||
$myTable .="<tr><td style='width:100px;'><b>Sender</b></td><td>" . $out['sender'] . "</td></tr>";
|
||||
$myTable .="<tr><td style='width:100px;'><b>Recipient</b></td><td>" . $out['recipient'] . "</td></tr>";
|
||||
$myTable .="<tr><td style='width:100px;'><b>Amount</b></td><td>" . $out['amount'] . "</td></tr>";
|
||||
$myTable .="<tr><td style='width:100px;'><b>Fee</b></td><td>" . $out['fee'] . "</td></tr>";
|
||||
|
||||
$myTable .="<tr><td style='width:100px;'><b></b></td><td></td></tr>";
|
||||
$myTable .="</table></form> ";
|
||||
|
||||
return $myTable;
|
||||
}
|
||||
return $myTable;
|
||||
}
|
||||
|
||||
private function sendmoneyProcessPage($out) {
|
||||
private function sendmoneyProcessPage($out, $page=array()) {
|
||||
$data = array(
|
||||
"account_bank" => $out['bank_code'],
|
||||
"account_number" => $out['account_no'],
|
||||
"amount" => $out['raw_amount'],
|
||||
"narration" => $out['sender'],
|
||||
"currency" => "NGN",
|
||||
"reference" => $out['id'],
|
||||
"debit_currency" => "NGN"
|
||||
);
|
||||
$url = "http://localhost:3000/create";
|
||||
$ch = curl_init();
|
||||
curl_setopt($ch,CURLOPT_URL, $url);
|
||||
curl_setopt($ch,CURLOPT_POST, count($data));
|
||||
curl_setopt($ch,CURLOPT_POSTFIELDS, json_encode($data));
|
||||
curl_setopt($ch,CURLOPT_HTTPHEADER, array('Content-Type:application/json'));
|
||||
curl_setopt($ch,CURLOPT_RETURNTRANSFER, TRUE);
|
||||
$result = curl_exec($ch);
|
||||
curl_close($ch);
|
||||
|
||||
$myTable = "<form id='sendmoneyProcessPage" . $out['id'] . "' name='sendmoneyProcessPage" . $out['id'] . "'><table class='table table-striped table-hover table-bordered table-condensed'>";
|
||||
$data = json_decode($result, true);
|
||||
// Error
|
||||
// {"status":"failure","message":"Invalid response","details":"Request failed with status code 400","code":400,"data":{"status":"error","code":"UNAUTHORIZED_ACCESS","message":"Unauthorized access. Compliance approval required to use this feature"}}
|
||||
// Success
|
||||
// ???
|
||||
$page["message"] = "";
|
||||
if ($data == null || $data == "" || (array_key_exists("status",$data) && $data["status"]=="failure")) {
|
||||
if ($data == null || $data == "") {
|
||||
// Invalid response, not clear what is going on (non-JSON response from the payment API)
|
||||
$page["message"] = "Invalid payment API respose: ".htmlentities($result);
|
||||
} else if (array_key_exists("data",$data) && array_key_exists("message",$data["data"])) {
|
||||
// Payment processor message
|
||||
$page["message"] = $data["data"]["message"];
|
||||
} else if (array_key_exists("message",$data)) {
|
||||
// Payment API message
|
||||
$page["message"] = $data["message"];
|
||||
} else {
|
||||
// Not clear what is going on (failure with no messages?)
|
||||
$page["message"] = "Invalid payment API respose: ".htmlentities($result);
|
||||
}
|
||||
} else {
|
||||
// TODO: success
|
||||
}
|
||||
// $page['confirmation']
|
||||
// $page['trans_code']
|
||||
// $data['trans_tref']
|
||||
|
||||
$myTable = "<form id='sendmoneyProcessPage" . $out['id'] . "' name='sendmoneyProcessPage" . $out['id'] . "'>";
|
||||
$myTable .="<span style='font-weight:bold;color:red'>".$page["message"]."</span>";
|
||||
$myTable .="<table class='table table-striped table-hover table-bordered table-condensed'>";
|
||||
$myTable .="<tr><td style='width:100px;'><b>Confirmation</b></td><td>" . $out['confirmation'] . "</td></tr>";
|
||||
$myTable .="<tr><td style='width:100px;'><b>Trx. Date</b></td><td>" . $out['added'] . "</td></tr>";
|
||||
$myTable .="<tr><td style='width:100px;'><b>Sender</b></td><td>" . $out['sender'] . "</td></tr>";
|
||||
|
||||
@@ -11,6 +11,11 @@ class Dash extends Users_Controller {
|
||||
}
|
||||
}
|
||||
|
||||
public function help(){
|
||||
$data = $this->getSessionArray();
|
||||
$data['page_title'] ="Help";
|
||||
$this->renderSecurePage('users/view_help', $data);
|
||||
}
|
||||
public function index() {
|
||||
|
||||
$data['username'] = $_SESSION['username']; // = $this->input->post('username');
|
||||
@@ -87,82 +92,68 @@ class Dash extends Users_Controller {
|
||||
$this->table->set_heading(array('data' => 'Job', 'style' => 'width:180px'), 'Title/Description', array('data' => '', 'style' => 'width:100px; cellpadding:0px;'));
|
||||
|
||||
$data['job_table'] = $this->table->generate($query);
|
||||
|
||||
$data['job_table_result'] = $query->result(); // used in new impl.
|
||||
|
||||
$x = $this->dashTaskMessage();
|
||||
$data['job_message_table'] = $x['job_message_table'];
|
||||
$data['job_message_table_result'] = $x['job_message_table_result'];
|
||||
$data['message_found'] = $x['message_found'];
|
||||
/// End table data ===========================
|
||||
|
||||
|
||||
|
||||
/*
|
||||
$this->load->library('table');
|
||||
$this->table->set_template($this->template);
|
||||
//$this->table->set_heading('Job', 'Client', 'Terms', 'Description', 'Manage', 'Status');
|
||||
$mysql = 'SELECT jo.added::date,jo.member_id,j.title,'
|
||||
. 'CASE WHEN jo.status = 1 THEN \'Pending\' ELSE \'Other\' END AS status'
|
||||
. 'FROM members_jobs_offer jo LEFT JOIN members_jobs j ON j.id = jo.job_id LIMIT 5';
|
||||
// $sqb =" ,'<button type=\"button\" class=\"btn btn-primary btn-xs\">View</button>' As View ";
|
||||
$jbx = "''jobs/viewjob''";
|
||||
$mysql = "SELECT jo.added::date,j.title,"
|
||||
. 'CASE WHEN jo.status = 1 THEN \'Pending\' ELSE \'Other\' END AS status,'
|
||||
. "'<input type=submit onclick=\"return post_nav_find_action($jbx,'''||jo.offer_code||''')\" name=\"manage\" class=\"btn btn-primary btn-xs\" value=\"View\">' AS View "
|
||||
. "FROM members_jobs_offer jo LEFT JOIN members_jobs j ON j.id = jo.job_id "
|
||||
. "WHERE jo.expire > now() AND jo.status = 1 "
|
||||
. "AND jo.client_id = " . $_SESSION['member_id'] . "LIMIT 4";
|
||||
|
||||
$query = $this->db->query($mysql);
|
||||
|
||||
$num = $query->num_rows();
|
||||
|
||||
$data["dash_title"] = "Pending Offer(s)";
|
||||
if ($num > 0) {
|
||||
$this->table->set_heading('Added', 'Title', 'Status', '');
|
||||
$data['offer_dash'] = $this->table->generate($query);
|
||||
} else {
|
||||
$data["offer_dash"] = "<div class=\"thumb\"><img src='assets/images/notask.png' alt=\"Active Projects\"></div>";
|
||||
}
|
||||
*/
|
||||
$acp = array();
|
||||
$acp = $this->activeProjects();
|
||||
$data['job_table'] = $acp['job_table'];
|
||||
$data['job_table_result'] = $acp['job_table_result'];
|
||||
|
||||
$ya = array();
|
||||
$ya = $this->dash_title();
|
||||
$data["dash_title"] = $ya["dash_title"];
|
||||
$data["offer_dash"] = $ya["offer_dash"];
|
||||
$data["offer_dash_result"] = $ya["offer_dash_result"];
|
||||
$data["offer_found"] = $ya["offer_found"];
|
||||
|
||||
$_SESSION['secure_data'] = $data; // all data needed for secure page
|
||||
// print_r($_SESSION);
|
||||
//var_dump( $_SESSION);
|
||||
//exit;
|
||||
$data['page_title'] ="Dashboard";
|
||||
$this->renderSecurePage('users/view_dash', $data);
|
||||
|
||||
$this->load->view('users/view_header_user', $data);
|
||||
$this->load->view('users/view_dash', $data);
|
||||
$this->load->view('users/view_footer_user', $data);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
private function activeProjects(){
|
||||
|
||||
|
||||
$jbx = "''/proj/thisjob''";
|
||||
$mysql = "SELECT '<b>ID:</b><a href=\"#\" onclick=\"showJobModal('''||mc.contract||''');\" >'||mc.contract||'</a><br><b>Timeline:</b>'||mc.timeline_days||' day(s)<br><b>Price:</b>'||mc.price*0.01 AS Project,"
|
||||
. " '<b>Title: </b>'||mc.title||'<br><b>Description: </b>'||mc.description AS description,'\/proj\/thisjob' AS qpath, mc.id AS offer_id,"
|
||||
. " (CASE WHEN mc.status=4 THEN '<input type=submit onclick=\"return post_nav_find_action($jbx, '||mc.id||')\" name=\"manage\" class=\"btn btn-info btn-xs btn-block\" value=\"Review\">' "
|
||||
. " WHEN mc.status = 1 AND mc.delivery_date > now() THEN '<input type=submit onclick=\"return post_nav_find_action($jbx, '||mc.id||')\" name=\"manage\" class=\"btn btn-success btn-xs btn-block\" value=\"View\">' "
|
||||
. " WHEN mc.status = 1 AND mc.delivery_date <now() THEN '<span class=\"label label-flat border-danger text-danger-600\">PastDue</span>' "
|
||||
. " ELSE '<input type=submit onclick=\"return post_nav_find_action($jbx, '||mc.id||')\" name=\"manage\" class=\"btn btn-info btn-xs btn-block\" value=\"View\">' END) AS manage "
|
||||
. " FROM members_jobs_contract mc LEFT JOIN members m ON m.id=mc.client_id "
|
||||
. " WHERE mc.member_id = " . $_SESSION['member_id'] . " AND mc.status IN (1,2,4) AND mc.delivery_date > now() "
|
||||
. " OR mc.client_id =" . $_SESSION['member_id'] . " AND mc.status IN (1,2,4) AND mc.delivery_date > now() LIMIT 4";
|
||||
|
||||
$query = $this->db->query($mysql);
|
||||
|
||||
|
||||
$this->load->library('table');
|
||||
$this->table->set_template($this->template);
|
||||
$this->table->set_heading(array('data' => 'Job', 'style' => 'width:180px'), 'Title/Description', array('data' => '', 'style' => 'width:100px; cellpadding:0px;'));
|
||||
|
||||
$data['job_table'] = $this->table->generate($query);
|
||||
$data['job_table_result'] = $query->result(); // used in new impl.
|
||||
|
||||
return $data;
|
||||
|
||||
}
|
||||
private function dashTaskMessage() {
|
||||
$data = array();
|
||||
/*
|
||||
wrenchboard=> select s.created,j.contract,j.title,j.id,j.status,j.delivery_date,substring(s.message,0,100) FROM members_jobs_contract j RIGHT JOIN jobs_contract_message s ON s.contract=j.contract WHERE j.member_id=3 or j.client_id = 3 AND j.status IN (1,4);
|
||||
created | contract | title | id | status | delivery_date | substring
|
||||
----------------------------+------------+-----------------------------------------------+----+--------+----------------------------+-----------------------------------------------------------------------------------------------------
|
||||
2017-05-18 11:53:20.569399 | 7BW9B9R8BB | five thousand naira | 13 | 1 | 2017-08-02 14:19:38.711257 | This is a test of ajax send message
|
||||
2017-05-18 12:03:30.685328 | 7B27RRBRB7 | 595Job Title Job Title Job Title Job Title932 | 15 | 4 | 2017-05-10 19:23:26.115394 | dldldldldldl
|
||||
2017-05-18 12:03:44.137005 | 7B27RRBRB7 | 595Job Title Job Title Job Title Job Title932 | 15 | 4 | 2017-05-10 19:23:26.115394 | This is an empty list test
|
||||
2017-05-18 12:04:00.228586 | 7B27RRBRB7 | 595Job Title Job Title Job Title Job Title932 | 15 | 4 | 2017-05-10 19:23:26.115394 | List should be populated now
|
||||
2017-05-18 20:49:12.996077 | 7BW9B9R8BB | five thousand naira | 13 | 1 | 2017-08-02 14:19:38.711257 | About PayQuic\r +
|
||||
| | | | | | PayQuic is global payments and airtime top-up company. Open for business 24/7, 365 d
|
||||
2017-06-12 10:28:32.720786 | 601BBWRW48 | 595Job Title Job Title Job Title Job Title932 | 10 | 1 | 2017-08-09 16:08:43.503739 | <table><tbody><tr><td><div><span><br>can you share your controller method and did you tried <c
|
||||
2017-06-12 10:28:41.932836 | 601BBWRW48 | 595Job Title Job Title Job Title Job Title932 | 10 | 1 | 2017-08-09 16:08:43.503739 | <table><tbody><tr><td><div><span><br>can you share your controller method and did you tried <c
|
||||
|
||||
*/
|
||||
$jbx = "''/proj/thisjob''";
|
||||
|
||||
$mysql = " SELECT s.created,j.contract,j.title,j.id,j.status,j.delivery_date,substring(s.message,0,100),"
|
||||
. " '<input type=submit onclick=\"return post_nav_find_action($jbx, '||j.id||')\" name=\"manage\" class=\"btn btn-success btn-xs btn-block\" value=\"View\">' "
|
||||
. " FROM members_jobs_contract j "
|
||||
. " RIGHT JOIN jobs_contract_message s ON s.contract=j.contract "
|
||||
. " WHERE j.member_id=" . $_SESSION['member_id'] . " OR j.client_id = " . $_SESSION['member_id'] . " AND j.status IN (1,4)";
|
||||
|
||||
$mysql = " SELECT s.created::date ||'<br>'||j.contract AS date_contract,'<b>Title:</b>'||j.title||'<br>'||substring(s.message,0,90) as title_message,"
|
||||
$mysql = " SELECT s.created::date ||'<br>'||j.contract AS date_contract,j.title AS title,substring(s.message,0,90) as title_message,'\/proj\/thisjob' AS qpath,j.id AS offer_code,"
|
||||
. " '<input type=submit onclick=\"return post_nav_find_action($jbx, '||j.id||')\" name=\"manage\" class=\"btn btn-success btn-xs btn-block\" value=\"View\">' "
|
||||
. " FROM members_jobs_contract j "
|
||||
. " RIGHT JOIN jobs_contract_message s ON s.contract=j.contract "
|
||||
@@ -170,13 +161,13 @@ class Dash extends Users_Controller {
|
||||
|
||||
$query = $this->db->query($mysql);
|
||||
|
||||
|
||||
$this->load->library('table');
|
||||
$this->table->set_template($this->template);
|
||||
$this->table->set_heading(array('data' => 'Date', 'style' => 'width:180px'), 'Title/Message', array('data' => '', 'style' => 'width:100px; cellpadding:0px;'));
|
||||
|
||||
$data['job_message_table'] = $this->table->generate($query);
|
||||
|
||||
$data['job_message_table_result'] = $query->result(); // used in new impl.
|
||||
$data['message_found'] = true;
|
||||
return $data;
|
||||
}
|
||||
|
||||
@@ -185,21 +176,19 @@ class Dash extends Users_Controller {
|
||||
$offer_found = false;
|
||||
|
||||
$data = array();
|
||||
$data['offer_dash'] = '';
|
||||
$data['offer_dash'] = $data['offer_dash_result'] ='';
|
||||
$this->load->library('table');
|
||||
$this->table->set_template($this->template);
|
||||
|
||||
$jbx = "''/jobs/viewjob''";
|
||||
$mysql = "SELECT jo.added::date,j.title,"
|
||||
. "'<input type=submit onclick=\"return post_nav_find_action($jbx,'''||jo.offer_code||''')\" name=\"manage\" class=\"btn btn-primary btn-xs\" value=\"View\">' AS View "
|
||||
$mysql = "SELECT jo.added::date AS pdate,j.title,(CASE WHEN jo.public_view > 0 THEN '-Public View' ELSE jo.email END) AS tRec,'\/jobs\/viewjob' AS qpath,"
|
||||
. 'CASE WHEN jo.status = 1 AND jo.public_view =0 THEN \'Pending\' WHEN jo.status = 1 AND jo.public_view >0 THEN \'Active\' ELSE \'Other\' END AS status,'
|
||||
. "'<input type=submit onclick=\"return post_nav_find_action($jbx,'''||jo.offer_code||''')\" name=\"manage\" class=\"btn btn-primary btn-xs\" value=\"View\">' AS View ,jo.offer_code AS offer_code "
|
||||
. "FROM members_jobs_offer jo LEFT JOIN members_jobs j ON j.id = jo.job_id "
|
||||
. "WHERE jo.expire > now() AND jo.status = 1 "
|
||||
. "AND jo.client_id = " . $_SESSION['member_id'] . " LIMIT 4";
|
||||
// . 'CASE WHEN jo.status = 1 THEN \'Pending\' ELSE \'Other\' END AS status,'
|
||||
$query = $this->db->query($mysql);
|
||||
|
||||
$num = $query->num_rows();
|
||||
|
||||
$data["dash_title"] = "Pending Offer(s)";
|
||||
if ($num > 0) {
|
||||
|
||||
@@ -209,6 +198,7 @@ class Dash extends Users_Controller {
|
||||
|
||||
$this->table->set_heading(array('data' => 'Added', 'style' => 'width:80px'), 'Title', array('data' => '', 'style' => 'width:80px'));
|
||||
$data['offer_dash'] = $this->table->generate($query);
|
||||
$data['offer_dash_result'] = $query->result();
|
||||
$offer_found = true;
|
||||
} else {
|
||||
$data["offer_dash"] = "<div class=\"thumb\"><img src='assets/images/notask.png' alt=\"Active Projects\"></div>";
|
||||
@@ -218,15 +208,14 @@ class Dash extends Users_Controller {
|
||||
if ($offer_found == false) {
|
||||
$data["dash_title"] = "<a href='/jobs/pendingoffer'>My Pending Offer(s)</a>";
|
||||
$jbx = "''/jobs/viewmyjob''";
|
||||
$mysql = "SELECT jo.added::date||'<br>'||jo.expire::date,j.title||'<br><b>To :</b>'||(CASE WHEN jo.public_view > 0 THEN '-Public View' ELSE jo.email END) AS tRec,"
|
||||
$mysql = "SELECT jo.added::date||'<br>'||jo.expire::date AS pdate,j.title, (CASE WHEN jo.public_view > 0 THEN '-Public View' ELSE jo.email END) AS tRec,'\/jobs\/viewmyjob' AS qpath,"
|
||||
. 'CASE WHEN jo.status = 1 AND jo.public_view =0 THEN \'Pending\' WHEN jo.status = 1 AND jo.public_view >0 THEN \'Active\' ELSE \'Other\' END AS status,'
|
||||
. "'<input type=submit onclick=\"return post_nav_find_action($jbx,'''||jo.offer_code||''')\" name=\"manage\" class=\"btn btn-primary btn-xs\" value=\"View\">' AS View "
|
||||
. "'<input type=submit onclick=\"return post_nav_find_action($jbx,'''||jo.offer_code||''')\" name=\"manage\" class=\"btn btn-primary btn-xs\" value=\"View\">' AS View,jo.offer_code AS offer_code "
|
||||
. "FROM members_jobs_offer jo LEFT JOIN members_jobs j ON j.id = jo.job_id "
|
||||
. "WHERE jo.expire > now() AND jo.status = 1 "
|
||||
. "AND jo.member_id = " . $_SESSION['member_id'] . " ORDER BY jo.id DESC LIMIT 4";
|
||||
|
||||
$query = $this->db->query($mysql);
|
||||
|
||||
$num = $query->num_rows();
|
||||
|
||||
if ($num > 0) {
|
||||
@@ -236,10 +225,12 @@ class Dash extends Users_Controller {
|
||||
|
||||
$this->table->set_heading(array('data' => 'Added/Expire', 'style' => 'width:120px'), 'Title/Recipient', array('data' => 'Status', 'style' => 'width:100px'), array('data' => '', 'style' => 'width:100px'));
|
||||
$data['offer_dash'] = $this->table->generate($query);
|
||||
$data['offer_dash_result'] = $query->result();
|
||||
$offer_found = true;
|
||||
}
|
||||
}
|
||||
|
||||
$data["offer_found"] = $offer_found;
|
||||
return $data;
|
||||
}
|
||||
|
||||
|
||||
@@ -2,16 +2,47 @@
|
||||
|
||||
defined('BASEPATH') OR exit('No direct script access allowed');
|
||||
|
||||
//Import Hybridauth's namespace
|
||||
use Hybridauth\Hybridauth;
|
||||
|
||||
class Home extends WRB_Controller {
|
||||
|
||||
public function index() {
|
||||
function __construct()
|
||||
{
|
||||
parent::__construct();
|
||||
|
||||
//Load URL helper
|
||||
$this->load->helper('url');
|
||||
|
||||
//Load session library
|
||||
$this->load->library('session');
|
||||
}
|
||||
|
||||
$this->home1('');
|
||||
//Displays social login links
|
||||
public function index() {
|
||||
// Load Hybridauth's helper
|
||||
$this->load->helper('hybridauth');
|
||||
|
||||
/*
|
||||
// Instantiate Hybridauth's classes
|
||||
$hybrid = new Hybridauth(get_hybridauth_config());
|
||||
|
||||
// Get login links
|
||||
$login_links = get_hybridauth_links($hybrid, $this->router);
|
||||
*/
|
||||
$login_links = array(
|
||||
'Google' => get_google_login_link()
|
||||
);
|
||||
// Pass login links to html template
|
||||
$data['login_links'] = $login_links;
|
||||
|
||||
// Render html template
|
||||
$this->load->view('site3/external/view_home', $data);
|
||||
}
|
||||
|
||||
public function about() {
|
||||
|
||||
$this->home2('home2/about');
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
@@ -33,6 +33,66 @@ class Jobs extends Users_Controller {
|
||||
}
|
||||
}
|
||||
|
||||
public function startcreate(){
|
||||
$data = $this->getSessionArray();
|
||||
$this->load->model('dash_model');
|
||||
$out = $this->dash_model->getDashData($data);
|
||||
$data['active_task'] = $out['active_task'];
|
||||
$data['active_pass_due'] = $out['active_pass_due'];
|
||||
$data['current_balance'] = $out['current_balance'];
|
||||
$data['new_message'] = $out['new_message'];
|
||||
$data['template_data'] = $this->jobsTemplates();
|
||||
$this->renderSecurePage('jobs/view_startcreate', $data);
|
||||
}
|
||||
|
||||
private function jobsTemplates(){
|
||||
|
||||
return [
|
||||
[
|
||||
'ID'=>'FACEBOOKSHARE',
|
||||
'name'=>'Share my article on your facebook page',
|
||||
'description'=>'We’ve been focused on making a the from also not been eye',
|
||||
'delivery'=>'',
|
||||
'img'=>'/site3/assets/media/jobs/share-stories.jpg',
|
||||
'timeline_days'=>'7'
|
||||
],
|
||||
[
|
||||
'ID'=>'TESTMYAPP',
|
||||
'name'=>'Test my App and give feedback',
|
||||
'description'=>'We’ve been focused on making a the from also not been eye',
|
||||
'delivery'=>'',
|
||||
'img'=>'/site3/assets/media/jobs/test-app.jpg',
|
||||
'timeline_days'=>'7'
|
||||
],
|
||||
[
|
||||
'ID'=>'REVIEWFEEDBACK',
|
||||
'name'=>'Review My Blog Story with feedback',
|
||||
'description'=>'We’ve been focused on making a the from also not been eye',
|
||||
'delivery'=>'',
|
||||
'img'=>'/site3/assets/media/jobs/review-stories.jpg',
|
||||
'timeline_days'=>'7'
|
||||
],
|
||||
[
|
||||
'ID'=>'PROPOSEBLOG',
|
||||
'name'=>'Propose new articles tiltles for my blog',
|
||||
'description'=>'We’ve been focused on making a the from also not been eye',
|
||||
'delivery'=>'',
|
||||
'img'=>'/site3/assets/media/jobs/propose-new.jpg',
|
||||
'timeline_days'=>'7'
|
||||
],
|
||||
[
|
||||
'ID'=>'WEBSITEREVIEW',
|
||||
'name'=>'Visit and review my Website provide feedback',
|
||||
'description'=>'We’ve been focused on making a the from also not been eye',
|
||||
'delivery'=>'',
|
||||
'img'=>'/site3/assets/media/jobs/review-site.jpg',
|
||||
'timeline_days'=>'7'
|
||||
],
|
||||
|
||||
];
|
||||
|
||||
}
|
||||
|
||||
public function active() {
|
||||
|
||||
$data['username'] = $_SESSION['username']; // = $this->input->post('username');
|
||||
@@ -138,9 +198,12 @@ class Jobs extends Users_Controller {
|
||||
|
||||
|
||||
|
||||
$this->load->view('users/view_header_user', $data);
|
||||
/* $this->load->view('users/view_header_user', $data);
|
||||
$this->load->view('jobs/view_pendinginterest', $data);
|
||||
$this->load->view('users/view_footer_user', $data);
|
||||
$this->load->view('users/view_footer_user', $data); */
|
||||
|
||||
$this->renderSecurePage('jobs/view_pendinginterest', $data);
|
||||
|
||||
}
|
||||
|
||||
public function jobinterest() {
|
||||
@@ -214,9 +277,12 @@ class Jobs extends Users_Controller {
|
||||
|
||||
|
||||
|
||||
$this->load->view('users/view_header_user', $data);
|
||||
/* $this->load->view('users/view_header_user', $data);
|
||||
$this->load->view('jobs/view_manageinterest', $data);
|
||||
$this->load->view('users/view_footer_user', $data);
|
||||
$this->load->view('users/view_footer_user', $data);*/
|
||||
|
||||
$this->renderSecurePage('jobs/view_manageinterest', $data);
|
||||
|
||||
}
|
||||
|
||||
private function getMarketInterestMessage($offer_code, $client_id) {
|
||||
@@ -500,8 +566,8 @@ class Jobs extends Users_Controller {
|
||||
. ' AND expire> now() AND public_view > 0';
|
||||
|
||||
$query = $this->db->query($mysql);
|
||||
|
||||
$num = $query->num_rows();
|
||||
$data['market_table_result'] = $query->result(); // used in new impl.
|
||||
|
||||
if ($num > 0) {
|
||||
$myTable = "<table class='table table-striped table-hover table-bordered table-condensed'>";
|
||||
@@ -520,9 +586,13 @@ class Jobs extends Users_Controller {
|
||||
|
||||
$_SESSION['secure_data'] = $data; // all data needed for secure page
|
||||
$data['page_title'] = "Available Jobs & Tasks";
|
||||
$this->load->view('users/view_header_user', $data);
|
||||
/* $this->load->view('users/view_header_user', $data);
|
||||
$this->load->view('jobs/view_market', $data);
|
||||
$this->load->view('users/view_footer_user', $data);
|
||||
*/
|
||||
// var_dump( $data['market_table_result']);
|
||||
// exit;
|
||||
$this->renderSecurePage('jobs/view_market', $data);
|
||||
}
|
||||
|
||||
private function makeMarketTableRow($row) {
|
||||
@@ -550,15 +620,16 @@ class Jobs extends Users_Controller {
|
||||
$data = $this->getSessionArray();
|
||||
|
||||
// echo 'Ameye';
|
||||
$data['offer_code'] = $this->input->get('offer_code');
|
||||
$data['yourmessage'] = $this->input->get('yourmessage');
|
||||
$data['member_id'] = $_SESSION['member_id']; // just maing sure
|
||||
$data['msg_type'] = 'JOB';
|
||||
$data['action'] = WRENCHBOARD_JOB_SEND_QUESTION;
|
||||
$in=[];
|
||||
$in['offer_code'] = $this->input->get('offer_code');
|
||||
$in['yourmessage'] = $this->input->get('yourmessage');
|
||||
$in['member_id'] = $_SESSION['member_id']; // just maing sure
|
||||
$in['msg_type'] = 'JOB';
|
||||
$in['action'] = WRENCHBOARD_JOB_SEND_QUESTION;
|
||||
// $this->load->model('backend_model');
|
||||
$out = array();
|
||||
$out['status'] = '';
|
||||
$res = $this->wrenchboard_api($data, $out);
|
||||
$res = $this->wrenchboard_api($in, $out);
|
||||
if ($res == PHP_CREATED_OK) {
|
||||
echo 'Success - Message sent' . $out['status'];
|
||||
} else {
|
||||
@@ -571,22 +642,23 @@ class Jobs extends Users_Controller {
|
||||
$data = $this->getSessionArray();
|
||||
|
||||
// echo 'Ameye';
|
||||
$data['offer_code'] = $this->input->get('offer_code');
|
||||
$data['yourmessage'] = $this->input->get('yourmessage');
|
||||
$data['interest_id'] = $this->input->get('interest_id');
|
||||
$data['member_id'] = $_SESSION['member_id']; // just maing sure
|
||||
$data['msg_type'] = 'MRKTINT'; // MARKET INTEREST
|
||||
$in =[];
|
||||
$in['offer_code'] = $this->input->get('offer_code');
|
||||
$in['yourmessage'] = $this->input->get('yourmessage');
|
||||
$in['interest_id'] = $this->input->get('interest_id');
|
||||
$in['member_id'] = $_SESSION['member_id']; // just maing sure
|
||||
$in['msg_type'] = 'MRKTINT'; // MARKET INTEREST
|
||||
|
||||
$data['action'] = WRENCHBOARD_JOB_MRKTINT_QUEST;
|
||||
$in['action'] = WRENCHBOARD_JOB_MRKTINT_QUEST;
|
||||
// $this->load->model('backend_model');
|
||||
$out = array();
|
||||
$out['status'] = '';
|
||||
$res = $this->wrenchboard_api($data, $out);
|
||||
$res = $this->wrenchboard_api($in, $out);
|
||||
// print_r($out);
|
||||
if ($res == PHP_CREATED_OK) {
|
||||
|
||||
//echo rand(100,999)." " .$out['client_id'];
|
||||
echo $this->getMarketInterestMessage( $data['offer_code'], $out['client_id'] ); //'Success - Message sent' . $out['status'];
|
||||
echo $this->getMarketInterestMessage( $in['offer_code'], $out['client_id'] ); //'Success - Message sent' . $out['status'];
|
||||
} else {
|
||||
echo 'Error - ' . $out['status'];
|
||||
}
|
||||
@@ -606,9 +678,9 @@ echo $this->getMarketInterestMessage( $data['offer_code'], $out['client_id'] )
|
||||
|
||||
if ($num > 0) {
|
||||
$row = $query->row_array();
|
||||
$myTable = "<table class='table table-sm table-hover table-bordered table-condensed' style=' background-color: #ebf1e8;'>";
|
||||
$myTable = " <div class='card card-xl-stretch mb-5 mb-xl-8'>";
|
||||
$myTable .= $this->makeMarketDetailTableRow($row);
|
||||
$myTable .="</table>";
|
||||
$myTable .="</div>";
|
||||
}
|
||||
|
||||
echo $myTable;
|
||||
@@ -625,19 +697,19 @@ echo $this->getMarketInterestMessage( $data['offer_code'], $out['client_id'] )
|
||||
|
||||
|
||||
|
||||
return "<tr><td colspan='2' ><b>" . $row['offer_code'] . "</b> Timeline:" . $row['timeline_days'] . " day(s) - <b>Budget: </b> " . $row['price'] * 0.01 . " Naira</td></tr>"
|
||||
. "<tr><td style='width:100px;'><b>Title</b></td><td>" . $row['title'] . "</td></tr>"
|
||||
. "<tr><td><b>Description</b></td><td>" . $row['description'] . "</td></tr>"
|
||||
. "<tr><td><b>Detail</b></td><td>" . $row['job_description'] . "</td></tr>"
|
||||
. "<tr><td colspan='2' >Interests : <b>" . $data['interest'] . "</b> Expire:<b> " . $row['expire']."</b> </td></tr>"
|
||||
. "<tr><td><b></b></td><td style='text-align:right;'><input type=submit id='submit_interest_" . $row['offer_code'] . "' name=\"mview\" onclick=\"return SInterest('" . $row['offer_code'] . "');\" class=\"btn btn-success btn-xs\" value=\"Send Interest Request
|
||||
\"></td></tr>"
|
||||
. "<tr><td colspan='2'>If you have any questions about this task :"
|
||||
. "<div id='msg_result_" . $row['offer_code'] . "'><form name=\"job_message\"><table class='table table-striped table-hover table-bordered table-condensed'>"
|
||||
. "<tr><td><textarea name='yourmessage' cols=\"5\" rows=\"3\" class=\"textarea form-control\" class=\"btn btn-success btn-xs\" placeholder=\"Enter message here ...\"></textarea></td></tr>"
|
||||
. "<tr><td style='text-align:right;'><button id='submit_yourmessage_" . $row['offer_code'] . "' onclick=\"return OMessage('" . $row['offer_code'] . "');\" class=\"btn btn-info btn-xs\">Send Message</button></td></tr></table></form></div>"
|
||||
. "</td></tr>"
|
||||
. " ";
|
||||
return "<div class='card-body'><table class='table table-sm table-hover table-bordered table-condensed' style='background-color: #ffffff;'><tr><td colspan='2' ><b>" . $row['offer_code'] . "</b> Timeline:" . $row['timeline_days'] . " day(s) - <b>Budget: </b> " . $row['price'] * 0.01 . " Naira</td></tr>"
|
||||
. "<tr><td style='width:100px;'><b>Title</b></td><td>" . $row['title'] . "</td></tr>"
|
||||
. "<tr><td><b>Description</b></td><td>" . $row['description'] . "</td></tr>"
|
||||
. "<tr><td><b>Detail</b></td><td>" . $row['job_description'] . "</td></tr>"
|
||||
. "<tr><td colspan='2' >Interests : <b>" . $data['interest'] . "</b> Expire:<b> " . $row['expire']."</b> </td></tr>"
|
||||
. "<tr><td><b></b></td><td style='text-align:right;'><input type=submit id='submit_interest_" . $row['offer_code'] . "' name=\"mview\" onclick=\"return SInterest('" . $row['offer_code'] . "');\" class=\"btn btn-success btn-xs\" value=\"Send Interest Request
|
||||
\"></td></tr>"
|
||||
. "<tr><td colspan='2'>If you have any questions about this task :"
|
||||
. "<div id='msg_result_" . $row['offer_code'] . "'><form name=\"job_message\"><table class='table table-striped table-hover table-bordered table-condensed'>"
|
||||
. "<tr><td><textarea name='yourmessage' cols=\"5\" rows=\"3\" class=\"textarea form-control\" class=\"btn btn-success btn-xs\" placeholder=\"Enter message here ...\"></textarea></td></tr>"
|
||||
. "<tr><td style='text-align:right;'><button id='submit_yourmessage_" . $row['offer_code'] . "' onclick=\"return OMessage('" . $row['offer_code'] . "');\" class=\"btn btn-info btn-xs\">Send Message</button></td></tr></table></form></div>"
|
||||
. "</td></tr>"
|
||||
. " </table></div>";
|
||||
}
|
||||
|
||||
public function viewmyjob() {
|
||||
@@ -667,9 +739,11 @@ echo $this->getMarketInterestMessage( $data['offer_code'], $out['client_id'] )
|
||||
|
||||
$data['job_link'] = 'https://'.$_SERVER['HTTP_HOST']."/plb/viewjob/".$out['offer_code'];
|
||||
|
||||
$this->load->view('users/view_header_user', $data);
|
||||
/* $this->load->view('users/view_header_user', $data);
|
||||
$this->load->view('jobs/view_viewmyjoboffer', $data);
|
||||
$this->load->view('users/view_footer_user', $data);
|
||||
$this->load->view('users/view_footer_user', $data);*/
|
||||
|
||||
$this->RenderUserPage('jobs/view_viewmyjoboffer', $data);
|
||||
} else {
|
||||
redirect('dash'); // go back to dash if not valid
|
||||
}
|
||||
@@ -718,9 +792,13 @@ echo $this->getMarketInterestMessage( $data['offer_code'], $out['client_id'] )
|
||||
$_SESSION['secure_data'] = $data; // all data needed for secure page
|
||||
$data['page_title'] = "my Market Job(s)";
|
||||
|
||||
$this->load->view('users/view_header_user', $data);
|
||||
/* $this->load->view('users/view_header_user', $data);
|
||||
$this->load->view('jobs/view_pendingoffer', $data);
|
||||
$this->load->view('users/view_footer_user', $data);
|
||||
*/
|
||||
|
||||
$this->renderSecurePage('jobs/view_pendingoffer', $data);
|
||||
|
||||
}
|
||||
|
||||
public function jobgrp() {
|
||||
@@ -841,9 +919,11 @@ echo $this->getMarketInterestMessage( $data['offer_code'], $out['client_id'] )
|
||||
$description = NULL;
|
||||
$job_detail = NULL;
|
||||
$timeline = NULL;
|
||||
$country = 'NG';
|
||||
// $timeline_days = NULL;
|
||||
$price = NULL;
|
||||
$submit = NULL;
|
||||
$country_job ='NG';
|
||||
|
||||
extract($_POST);
|
||||
$redirected = false;
|
||||
@@ -855,6 +935,7 @@ echo $this->getMarketInterestMessage( $data['offer_code'], $out['client_id'] )
|
||||
$in['job_detail'] =$this->input->post('job_detail'); // Somehow this doesnt show when large $job_detail;
|
||||
$in['price'] = $price * 100;
|
||||
$in['member_id'] = $_SESSION['member_id'];
|
||||
$in['country'] = $country_job;
|
||||
|
||||
$this->load->model('job_model');
|
||||
if ($this->job_model->verifyJobInputs($in) == true) {
|
||||
@@ -878,6 +959,10 @@ echo $this->getMarketInterestMessage( $data['offer_code'], $out['client_id'] )
|
||||
|
||||
}
|
||||
|
||||
$this->load->model('combo_model');
|
||||
$this->combo_model->defaultComboMessage = 'Select Job Country';
|
||||
$data['country_job'] = $this->combo_model->getCountryJobCombo('country', $country);
|
||||
|
||||
if ($redirected == false) {
|
||||
$this->load->model('dash_model');
|
||||
$out = $this->dash_model->getDashData($data);
|
||||
@@ -886,12 +971,17 @@ echo $this->getMarketInterestMessage( $data['offer_code'], $out['client_id'] )
|
||||
$data['current_balance'] = $out['current_balance'];
|
||||
$data['new_message'] = $out['new_message'];
|
||||
|
||||
$this->load->view('users/view_header_user', $data);
|
||||
$this->load->view('jobs/view_create', $data);
|
||||
$this->load->view('users/view_footer_user', $data);
|
||||
// $this->load->view('users/view_header_user', $data);
|
||||
// $this->load->view('jobs/view_create', $data);
|
||||
// $this->load->view('users/view_footer_user', $data);
|
||||
|
||||
$this->renderSecurePage('jobs/view_create', $data);
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
public function processjob() {
|
||||
$jobID = $this->input->post('jobID');
|
||||
if ($jobID > 0) {
|
||||
@@ -902,13 +992,26 @@ echo $this->getMarketInterestMessage( $data['offer_code'], $out['client_id'] )
|
||||
}
|
||||
}
|
||||
|
||||
public function agreejobterms(){
|
||||
$data = $this->getSessionArray();
|
||||
$in = array();
|
||||
$in['action'] = WRENCHBOARD_ACCOUNT_TERMS;
|
||||
$in['action_item'] = ACCOUNT_AGREE_JOBS;
|
||||
$in['member_id'] = $_SESSION['member_id'];
|
||||
$this->load->model('backend_model');
|
||||
$out = array();
|
||||
$res = $this->backend_model->wrenchboard_api($in, $out);
|
||||
|
||||
if ($res == PHP_API_OK) {
|
||||
redirect('/jobs/create');
|
||||
}
|
||||
}
|
||||
|
||||
public function jobagree() {
|
||||
$data = $this->getSessionArray();
|
||||
//echo 'Ameye-- '. rand(100,999);
|
||||
//print_r($this->input->post());
|
||||
//$this->agreejobterms();
|
||||
|
||||
if ($_POST) {
|
||||
|
||||
$in = array();
|
||||
$in['action'] = WRENCHBOARD_ACCOUNT_TERMS;
|
||||
$in['action_item'] = ACCOUNT_AGREE_JOBS;
|
||||
@@ -917,7 +1020,6 @@ echo $this->getMarketInterestMessage( $data['offer_code'], $out['client_id'] )
|
||||
$out = array();
|
||||
$res = $this->backend_model->wrenchboard_api($in, $out);
|
||||
|
||||
|
||||
if ($res == PHP_API_OK) {
|
||||
redirect('/jobs/create');
|
||||
}
|
||||
@@ -925,13 +1027,7 @@ echo $this->getMarketInterestMessage( $data['offer_code'], $out['client_id'] )
|
||||
|
||||
$data['page_key'] = 'WRB_POST_JOB_TERM';
|
||||
$data['txt_detail'] = $this->readFixedText($data['page_key']);
|
||||
|
||||
|
||||
|
||||
|
||||
$this->load->view('users/view_header_user', $data);
|
||||
$this->load->view('jobs/view_jobagree', $data);
|
||||
$this->load->view('users/view_footer_user', $data);
|
||||
$this->renderSecurePage('jobs/view_jobagree', $data);
|
||||
}
|
||||
|
||||
private function processingJob($jobID) {
|
||||
@@ -1242,9 +1338,11 @@ echo $this->getMarketInterestMessage( $data['offer_code'], $out['client_id'] )
|
||||
$data['page_title'] = "Manage Job(s)";
|
||||
|
||||
$data['job_table'] = $this->table->generate($query);
|
||||
$this->load->view('users/view_header_user', $data);
|
||||
/* $this->load->view('users/view_header_user', $data);
|
||||
$this->load->view('jobs/view_manage', $data);
|
||||
$this->load->view('users/view_footer_user', $data);
|
||||
$this->load->view('users/view_footer_user', $data); */
|
||||
$this->renderSecurePage('jobs/view_manage', $data);
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -1,5 +1,10 @@
|
||||
<?php
|
||||
|
||||
defined('BASEPATH') OR exit('No direct script access allowed');
|
||||
|
||||
//Import Hybridauth's namespace
|
||||
use Hybridauth\Hybridauth;
|
||||
|
||||
class Login extends WRB_Controller {
|
||||
|
||||
public function __construct() {
|
||||
@@ -10,8 +15,28 @@ class Login extends WRB_Controller {
|
||||
$this->load->library(array('session', 'lib_login'));
|
||||
}
|
||||
|
||||
private function excudedEmails(){
|
||||
$ecData= [
|
||||
'ses66181+1@gmail.com',
|
||||
'tokslawus@gmail.com',
|
||||
'ses6681+3@gmail.com',
|
||||
'ameye@chiefsoft.com',
|
||||
'ses66181@gmail.com',
|
||||
];
|
||||
|
||||
if (in_array($_SESSION['username'], $ecData))
|
||||
{
|
||||
$_SESSION['allow_payment_features'] = true;
|
||||
}
|
||||
else
|
||||
{
|
||||
$_SESSION['allow_payment_features'] = false;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
public function index() {
|
||||
$data["login_message"] = "";
|
||||
$data["login_message"] = $this->session->flashdata('login_message');
|
||||
$this->load->library('form_validation');
|
||||
$this->form_validation->set_rules('username', 'Username', 'required');
|
||||
$this->form_validation->set_rules('password', 'Password', 'required');
|
||||
@@ -28,7 +53,7 @@ class Login extends WRB_Controller {
|
||||
$out = array();
|
||||
$res = $this->backend_model->wrenchboard_api($data, $out);
|
||||
$is_live = $this->backend_model->cfgReadChar("system.live");
|
||||
// print_r($out);
|
||||
// print_r($out);
|
||||
if ($res == PHP_LOGIN_OK) {
|
||||
$this->load->model('account_model');
|
||||
$ret = $this->account_model->username_data($data);
|
||||
@@ -59,7 +84,11 @@ class Login extends WRB_Controller {
|
||||
$this->logUser('Account login');
|
||||
$this->refreshAccountDetail($_SESSION['member_id']);
|
||||
$this->getSessionArray();
|
||||
redirect('dash');
|
||||
$this->excudedEmails();
|
||||
$this->load->model('autopref_model');
|
||||
|
||||
$prefArray = $this->autopref_model->afterLoginPage();
|
||||
redirect($prefArray['returnPage']);
|
||||
}
|
||||
} else {
|
||||
$data["login_message"] = "Invalid username or password";
|
||||
@@ -69,30 +98,15 @@ class Login extends WRB_Controller {
|
||||
} else {
|
||||
echo validation_errors();
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
if ($this->lib_login->is_authenticated()) {
|
||||
$fb_data = $this->lib_login->getData($this->lib_login->get_access_token());
|
||||
if (isset($fb_data['me'])) {
|
||||
$user = $fb_data['me'];
|
||||
$proceed = false;
|
||||
//$data["login_message"] = $user["id"]."/".$user["name"]."/".$user["email"]."<a href='".$this->lib_login->getLogoutUrl()."'>Logout</a>";
|
||||
$q = "SELECT * FROM members WHERE lower(email)=lower('" . $user["name"] . "') AND password IS NULL AND fb_id='" . $user["id"] . "'";
|
||||
$query = $this->db->query($q);
|
||||
if (count($query->result_array)) {
|
||||
// Account exists
|
||||
$proceed = true;
|
||||
} else {
|
||||
$q = "SELECT * FROM members WHERE lower(email)=lower('" . $user["name"] . "')";
|
||||
$query = $this->db->query($q);
|
||||
if (count($query->result_array)) {
|
||||
$data["login_message"] = "The e-mail " . $user["email"] . " is already registered. You should login with your username and password.";
|
||||
} else {
|
||||
// Create account
|
||||
$proceed = true;
|
||||
}
|
||||
}
|
||||
$user['facebook'] = 1;
|
||||
|
||||
list($proceed, $data) = $this->checkUserExists($user, $data);
|
||||
|
||||
if ($proceed) {
|
||||
$name = (string) $user["name"];
|
||||
if (trim($name) == "")
|
||||
@@ -123,10 +137,13 @@ class Login extends WRB_Controller {
|
||||
$_SESSION['mesaage_count'] = 0;
|
||||
$this->findOffers($_SESSION['email']);
|
||||
$_SESSION['message_snapshot'] = $this->myMessagesSnapshot();
|
||||
|
||||
$_SESSION['profile_picture'] = "../smedia/DEFAULTS/default-profile.png";
|
||||
$this->logUser('Account login');
|
||||
$this->refreshAccountDetail($_SESSION['member_id']);
|
||||
$this->getSessionArray();
|
||||
|
||||
$this->excudedEmails();
|
||||
|
||||
redirect('dash');
|
||||
}
|
||||
}
|
||||
@@ -138,30 +155,254 @@ class Login extends WRB_Controller {
|
||||
|
||||
if( strlen( $data["login_message"]) > 0 )
|
||||
{
|
||||
$data["login_message"] = "<div class=\"text-left\"><div class=\"alert alert-danger no-border\">" . $data["login_message"] . "</div></div>";
|
||||
$data["login_message"] = "<div class=\"text-left\"><div class=\"alert alert-danger no-border\">" . $data["login_message"] . "-<a href=\"/password_recovery\">Forgot Password ?</a></div></div>";
|
||||
}
|
||||
$data['title'] = "Login"; // Capitalize the first letter
|
||||
$data['page_title'] = "Login WrenchBoard";
|
||||
//$this->load->view('templates/header_boxed', $data);
|
||||
$this->load->view('users/view_login', $data);
|
||||
$this->load->view('users/view_external_footer');
|
||||
//----- long out $this->load->view('templates/header_boxed', $data);
|
||||
//$this->load->view('users/view_login', $data);
|
||||
//$this->load->view('users/view_external_footer');
|
||||
|
||||
// Load Hybridauth's helper
|
||||
$this->load->helper('hybridauth');
|
||||
|
||||
/*
|
||||
// Instantiate Hybridauth's classes
|
||||
$hybrid = new Hybridauth(get_hybridauth_config());
|
||||
|
||||
// Get login links
|
||||
$login_links = get_hybridauth_links($hybrid, $this->router);
|
||||
*/
|
||||
$login_links = array(
|
||||
'Google' => get_google_login_link()
|
||||
);
|
||||
// Pass login links to html template
|
||||
$data['login_links'] = $login_links;
|
||||
|
||||
// Render html template
|
||||
$this->load->view('site3/external/view_home',$data);
|
||||
}
|
||||
|
||||
//<a href="/password_recovery">Forgot Password ?</a>
|
||||
|
||||
|
||||
public function refreshAccountDetail($member_id) {
|
||||
public function refreshAccountDetail($member_id) {
|
||||
$this->load->model('account_model');
|
||||
$qr = $this->account_model->loadAccountData($member_id);
|
||||
// print_r($qr);
|
||||
$_SESSION['current_balance'] = $qr[0]['balance'];
|
||||
$this->load->model('account_model');
|
||||
|
||||
$_SESSION['current_balance'] = $this->account_model->getUserWallet($member_id,$currency='NAIRA'); // $out['current_balance'];
|
||||
// $_SESSION['current_balance'] = $qr[0]['balance'];
|
||||
$_SESSION['active_task'] = $this->account_model->loadActiveTaskCount($member_id);
|
||||
}
|
||||
|
||||
|
||||
private function checkUserExists($user, $data)
|
||||
{
|
||||
$proceed = false;
|
||||
$q = " AND external_idp_provider=1";
|
||||
if (is_array($user) && array_key_exists('google',$user)) {
|
||||
$q = " AND external_idp_provider=2";
|
||||
}
|
||||
//$data["login_message"] = $user["id"]."/".$user["name"]."/".$user["email"]."<a href='".$this->lib_login->getLogoutUrl()."'>Logout</a>";
|
||||
$q = "SELECT * FROM members WHERE lower(email)=lower('" . $user["name"] . "') AND password IS NULL AND external_idp_provider_id='" . $user["id"] . "'" . $q;
|
||||
$query = $this->db->query($q);
|
||||
if (count($query->result_array)) {
|
||||
// Account exists
|
||||
$proceed = true;
|
||||
} else {
|
||||
$q = "SELECT * FROM members WHERE lower(email)=lower('" . $user["name"] . "')";
|
||||
$query = $this->db->query($q);
|
||||
if (count($query->result_array)) {
|
||||
$data["login_message"] = "The e-mail " . $user["email"] . " is already registered. You should login with your username and password.";
|
||||
} else {
|
||||
// Create account
|
||||
$proceed = true;
|
||||
}
|
||||
}
|
||||
return array($proceed, $data);
|
||||
}
|
||||
|
||||
public function logout() {
|
||||
$this->lib_login->destroy_session();
|
||||
redirect('login', redirect);
|
||||
}
|
||||
|
||||
//Processes social login
|
||||
function auth($provider = NULL)
|
||||
{
|
||||
$data = array();
|
||||
// Load Hybridauth's helper
|
||||
$this->load->helper('hybridauth');
|
||||
$code = $this->input->get('code');
|
||||
if ($code!='') {
|
||||
$client = get_google_client();
|
||||
$token = $client->fetchAccessTokenWithAuthCode($code);
|
||||
if (is_array($token) && array_key_exists('access_token',$token)) {
|
||||
$client->setAccessToken($token['access_token']);
|
||||
|
||||
// get profile info
|
||||
$google_oauth = new Google_Service_Oauth2($client);
|
||||
$google_account_info = $google_oauth->userinfo->get();
|
||||
$id = $google_account_info->id;
|
||||
$email = $google_account_info->email;
|
||||
$name = $google_account_info->name;
|
||||
|
||||
//var_dump($google_account_info);
|
||||
//exit();
|
||||
|
||||
if ($id !='' && $email != '') {
|
||||
$user = array(
|
||||
'id' => $id,
|
||||
'name' => $name,
|
||||
'email' => $email,
|
||||
'google' => 1
|
||||
);
|
||||
list($proceed, $data) = $this->checkUserExists($user, $data);
|
||||
|
||||
if ($proceed) {
|
||||
|
||||
$name = (string) $user["name"];
|
||||
if (trim($name) == "") {
|
||||
$name = strtok($user["email"], "@");
|
||||
}
|
||||
$data['google_id'] = $user["id"];
|
||||
$data['firstname'] = strtok($name, " ");
|
||||
$data['lastname'] = strtok(" ");
|
||||
$data['email'] = $user["email"];
|
||||
$data['sessionid'] = rand(10000, 99999) . "A" . rand(10000, 99999);
|
||||
$data['action'] = WRENCHBOARD_GOOGLE_LOGIN;
|
||||
$this->load->model('backend_model');
|
||||
$out = array();
|
||||
|
||||
$res = $this->backend_model->wrenchboard_api($data, $out);
|
||||
if ($res == PHP_LOGIN_OK) {
|
||||
$this->load->model('account_model');
|
||||
$ret = $this->account_model->username_data($out);
|
||||
if ($res !== false) {
|
||||
$data["login_message"] = "Welcome...";
|
||||
// yes person has an account
|
||||
$_SESSION['session_id'] = $out["session"];
|
||||
$_SESSION['username'] = $ret->username;
|
||||
$_SESSION['name'] = $ret->username;
|
||||
$_SESSION['firstname'] = $ret->firstname;
|
||||
$_SESSION['lastname'] = $ret->lastname;
|
||||
$_SESSION['email'] = $ret->email;
|
||||
$_SESSION['member_id'] = $ret->id;
|
||||
$_SESSION['log_count'] = 0;
|
||||
$_SESSION['mesaage_count'] = 0;
|
||||
$this->findOffers($_SESSION['email']);
|
||||
$_SESSION['message_snapshot'] = $this->myMessagesSnapshot();
|
||||
$_SESSION['profile_picture'] = "../smedia/DEFAULTS/default-profile.png";
|
||||
$this->logUser('Account login');
|
||||
$this->refreshAccountDetail($_SESSION['member_id']);
|
||||
$this->getSessionArray();
|
||||
|
||||
$this->excudedEmails();
|
||||
|
||||
redirect('dash');
|
||||
} else {
|
||||
// Cannot proceed - account model error?
|
||||
$this->session->set_flashdata('login_message','Cannot proceed - account model error: '.$ret);
|
||||
redirect('login');
|
||||
}
|
||||
} else {
|
||||
// Cannot proceed - backend error?
|
||||
$msg = (is_array($out) && array_key_exists('status',$out) && $out['status']!='')
|
||||
? $out ['status'] : json_encode($out);
|
||||
$this->session->set_flashdata('login_message','Cannot proceed - backend error: '.$msg);
|
||||
redirect('login');
|
||||
}
|
||||
} else {
|
||||
// Cannot proceed - duplicate email?
|
||||
$this->session->set_flashdata('login_message','Cannot proceed - duplicate email');
|
||||
redirect('login');
|
||||
}
|
||||
} else {
|
||||
// Invalid or missing id and/or email - login failed?
|
||||
$this->session->set_flashdata('login_message','Invalid or missing id and/or email - login failed!');
|
||||
redirect('login');
|
||||
}
|
||||
} else {
|
||||
// Missing access token / invalid grant - expired credentials?
|
||||
$this->session->set_flashdata('login_message','Missing access token / invalid grant - expired credentials!');
|
||||
redirect('login');
|
||||
}
|
||||
} else {
|
||||
// Invalid or missing code - login failed?
|
||||
$this->session->set_flashdata('login_message','Invalid or missing code - login failed!');
|
||||
redirect('login');
|
||||
}
|
||||
}
|
||||
|
||||
//Processes social login
|
||||
function authh($provider = NULL)
|
||||
{
|
||||
// Load Hybridauth's helper
|
||||
$this->load->helper('hybridauth');
|
||||
|
||||
$service = NULL;
|
||||
|
||||
try
|
||||
{
|
||||
//Instantiate Hybridauth's classes
|
||||
$hybrid = new Hybridauth(get_hybridauth_config());
|
||||
|
||||
//Check if given provider is enabled
|
||||
if ((isset($provider)) && in_array($provider, $hybrid->getProviders()))
|
||||
{
|
||||
$this->session->set_userdata('provider', $provider);
|
||||
}
|
||||
|
||||
//Update variable with the valid provider
|
||||
$provider = $this->session->userdata('provider');
|
||||
|
||||
if ($provider)
|
||||
{
|
||||
$service = $hybrid->authenticate($provider);
|
||||
var_dump($service);
|
||||
exit();
|
||||
if ($service->isConnected())
|
||||
{
|
||||
//Get user profile
|
||||
$profile = $service->getUserProfile();
|
||||
|
||||
//Get user contacts
|
||||
$contacts = $service->getUserContacts();
|
||||
|
||||
/*
|
||||
Disconnect the service else HA would reuse stored session data
|
||||
rather making a fresh request in case the user has denied permissions
|
||||
in the previous authorization request
|
||||
*/
|
||||
$service->disconnect();
|
||||
|
||||
$this->session->unset_userdata('provider');
|
||||
|
||||
//Display the profile data
|
||||
echo 'Name: ' . $profile->displayName;
|
||||
print_r($profile);
|
||||
exit();
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->session->set_flashdata('showmsg', array('msg' => 'Sorry! We couldn\'t authenticate your identity.'));
|
||||
}
|
||||
}
|
||||
}
|
||||
catch(Exception $e)
|
||||
{
|
||||
if (isset($service) && $service->isConnected())
|
||||
$service->disconnect();
|
||||
|
||||
$error = 'Sorry! We couldn\'t authenticate you.';
|
||||
$this->session->set_flashdata('showmsg', array('msg' => $error));
|
||||
$error .= '\nError Code: ' . $e->getCode();
|
||||
$error .= '\nError Message: ' . $e->getMessage();
|
||||
|
||||
log_message('error', $error);
|
||||
}
|
||||
|
||||
//redirect();
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
@@ -26,7 +26,25 @@ class Member extends Users_Controller {
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* Schedule account delete in the backend
|
||||
*/
|
||||
public function deleteacc(){
|
||||
// echo "Please log out of your account, and you will not be able to log in anymore. ";
|
||||
$data = $this->getSessionArray();
|
||||
$in = [];
|
||||
|
||||
$in['member_id'] = $_SESSION['member_id'];
|
||||
$in['reason'] = "Not accepted in this version";
|
||||
$in['action'] = WRENCHBOARD_USER_DELETEACC;
|
||||
if ($this->wrenchboard_api($in, $outx) == PHP_API_OK) {
|
||||
$data['delete_message'] = "<div class=\"text-left\"><div class=\"alert alert-info no-border\">Your Account and Information Deleted.</div></div>";
|
||||
redirect('/logout');
|
||||
} else {
|
||||
$data['delete_message'] = "<div class=\"text-left\"><div class=\"alert alert-danger no-border\">Unable to complete account delete at this time. </div></div>";
|
||||
}
|
||||
echo $data['delete_message'];
|
||||
}
|
||||
|
||||
public function addreccipient() {
|
||||
|
||||
@@ -250,9 +268,12 @@ class Member extends Users_Controller {
|
||||
//stdClass Object ( [id] => 146 [code] => NG [country] => Nigeria [phone_code] => 234 [allow] => 2017-01-08 10:30:42.259079-05 [status] => 1 [created] => 2017-01-08 10:30:15.087696 [updated] => 2017-01-08 10:30:15.087696 )
|
||||
|
||||
|
||||
$this->load->view('users/view_header_user', $data);
|
||||
/* $this->load->view('users/view_header_user', $data);
|
||||
$this->load->view('users/view_profile', $data);
|
||||
$this->load->view('users/view_footer_user', $data);
|
||||
$this->load->view('users/view_footer_user', $data);*/
|
||||
|
||||
$this->RenderUserPage('users/view_profile', $data);
|
||||
|
||||
}
|
||||
|
||||
public function picture() {
|
||||
@@ -438,9 +459,12 @@ class Member extends Users_Controller {
|
||||
|
||||
$data['galery_list'] = $this->getGaleryList($_SESSION['member_id']);
|
||||
|
||||
$this->load->view('users/view_header_user', $data);
|
||||
/* $this->load->view('users/view_header_user', $data);
|
||||
$this->load->view('users/view_yourpage', $data);
|
||||
$this->load->view('users/view_footer_user', $data);
|
||||
*/
|
||||
$data['page_title'] ="My Page";
|
||||
$this->renderSecurePage('users/view_yourpage', $data);
|
||||
}
|
||||
|
||||
|
||||
@@ -583,6 +607,25 @@ class Member extends Users_Controller {
|
||||
|
||||
public function addfund() {
|
||||
$data = $this->getSessionArray();
|
||||
|
||||
|
||||
$this->load->library('table');
|
||||
$this->table->set_template($this->template);
|
||||
$mysql = "SELECT m.added::date AS date,m.terminatingamount*0.01 AS amount,m.fee*0.01 as fee, "
|
||||
. "r.firstname||' '||r.lastname||'<br><b>Acc:</b>'||r.account_no||'-'||b.name AS Recitient,mp.confirmation,"
|
||||
. "CASE WHEN m.status=1 THEN 'Pending' WHEN m.status=3 THEN 'Cancelled' WHEN m.status=5 THEN 'Completed' ELSE '' END AS Status "
|
||||
. "FROM money_transfer m "
|
||||
. "LEFT JOIN sendmoney_recipient r ON r.id = m.recipientid "
|
||||
. "LEFT JOIN bank_entity_codes b ON b.code = r.bank_code "
|
||||
. "LEFT JOIN members_payments mp ON mp.what_sendmoney = m.id "
|
||||
. "WHERE m.member_id =" . $_SESSION['member_id'] . " AND mp.confirmation IS NOT NULL ORDER BY m.id DESC LIMIT 4";
|
||||
|
||||
$query = $this->db->query($mysql);
|
||||
$this->table->set_heading('Date', 'Amount','Fee','Recipient','Confirmation', 'Status');
|
||||
$data['sendmoney_table'] = $this->table->generate($query);
|
||||
$data['sendmoney_table_result'] = $query->result();
|
||||
|
||||
|
||||
$data['page_key'] = 'WRB_FUND_ACCOUNT';
|
||||
$data['txt_detail'] = $this->readFixedText($data['page_key']);
|
||||
$data['txt_detail'] = str_replace("[how-it-worked-image-1]", "<img src='/assets/images/howitworks/howitworks-1.jpg' alt=''>", $data['txt_detail']);
|
||||
@@ -632,6 +675,27 @@ class Member extends Users_Controller {
|
||||
$data['comment'] = '';
|
||||
// $data['fee'] = 0;
|
||||
//$data['escrow_balance'] = 0;
|
||||
$this->load->model('report_model');
|
||||
$this->load->model('account_model');
|
||||
$this->load->library('table');
|
||||
$this->table->set_template($this->template);
|
||||
$mysql = "SELECT m.added::date AS date,m.terminatingamount*0.01 AS amount,m.fee*0.01 as fee, "
|
||||
. "r.firstname||' '||r.lastname||'<br><b>Acc:</b>'||r.account_no||'-'||b.name AS Recitient,mp.confirmation,"
|
||||
. "CASE WHEN m.status=1 THEN 'Pending' WHEN m.status=3 THEN 'Cancelled' WHEN m.status=5 THEN 'Completed' ELSE '' END AS Status "
|
||||
. "FROM money_transfer m "
|
||||
. "LEFT JOIN sendmoney_recipient r ON r.id = m.recipientid "
|
||||
. "LEFT JOIN bank_entity_codes b ON b.code = r.bank_code "
|
||||
. "LEFT JOIN members_payments mp ON mp.what_sendmoney = m.id "
|
||||
. "WHERE m.member_id =" . $_SESSION['member_id'] . " AND mp.confirmation IS NOT NULL ORDER BY m.id DESC LIMIT 4";
|
||||
|
||||
$query = $this->db->query($mysql);
|
||||
$this->table->set_heading('Date', 'Amount','Fee','Recipient','Confirmation', 'Status');
|
||||
$data['sendmoney_table'] = $this->table->generate($query);
|
||||
$data['sendmoney_table_result'] = $query->result();
|
||||
|
||||
$data['card_payment_data_result'] = $this->report_model->getCardPurchase(6)['card_payment_data_result'];
|
||||
$data['wallet'] = $this->account_model->getUserWallet( $_SESSION['member_id']);
|
||||
|
||||
|
||||
if ($_POST) {
|
||||
$data['comment'] = $this->input->post('comment');
|
||||
@@ -664,24 +728,84 @@ class Member extends Users_Controller {
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
$data['page_title'] ="Wallet";
|
||||
$this->RenderUserPage('users/view_balance', $data);
|
||||
}
|
||||
|
||||
|
||||
public function smoney() {
|
||||
$data = $this->getSessionArray();
|
||||
//var_dump($data);
|
||||
//exit();
|
||||
|
||||
$data['add_error'] = '';
|
||||
$data['amount'] = 0;
|
||||
$this->load->model('combo_model');
|
||||
$data['recipient_account'] = $this->input->post('recipient_account');
|
||||
$data['recipient_account_combo'] = $this->combo_model->getUserRecipientCombo('recipient_account', $_SESSION['member_id'], $data['recipient_account']);
|
||||
$data['fee'] = $data['total'] =0;
|
||||
$data['comment'] = '';
|
||||
// $data['fee'] = 0;
|
||||
//$data['escrow_balance'] = 0;
|
||||
$this->load->model('account_model');
|
||||
$data['wallet'] = $this->account_model->getUserWallet($_SESSION['member_id'],$currency='NAIRA'); // $out['current_balance'];
|
||||
$data['current_balance'] = $data['wallet'][0]['current_balance'];
|
||||
|
||||
if ($_POST) {
|
||||
$data['comment'] = $this->input->post('comment');
|
||||
$data['amount'] = $this->input->post('amount') + 0; // must be number [still in full will be cents to go to backend latter]
|
||||
|
||||
if ($data['amount'] == 0 || $data['amount'] < 0 || $data['amount'] == '' || $data['recipient_account'] == '') {
|
||||
$out['error'] = 'Amount & Recipient Account Required';
|
||||
$data['add_error'] = "<div class=\"text-left\"><div class=\"alert alert-danger no-border\">" . $out['error'] . "</div></div>";
|
||||
if ($data['amount'] > 0) {
|
||||
$outx = $this->transactionFee($data['amount'], $_SESSION['member_id']);
|
||||
$data['total'] = $outx['total_amount'];
|
||||
$data['fee'] = $outx['processing_fee'];
|
||||
}
|
||||
} else {
|
||||
|
||||
$outx = $this->transactionFee($data['amount'], $_SESSION['member_id']);
|
||||
$data['total'] = $outx['total_amount'];
|
||||
$data['fee'] = $outx['processing_fee'];
|
||||
|
||||
$TotalAmount = $data['total'];
|
||||
|
||||
// now let us do initial check if you have enough money
|
||||
if ($data['current_balance'] < $TotalAmount) {
|
||||
$out['error'] = 'You do not have enough balance for this transfer';
|
||||
$data['add_error'] = "<div class=\"text-left\"><div class=\"alert alert-danger no-border\">" . $out['error'] . "</div></div>";
|
||||
} else {
|
||||
$this->session->set_flashdata('pending_sendmoney', $data);
|
||||
redirect('member/confirmwithdraw');
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
$this->load->library('table');
|
||||
$this->table->set_template($this->template);
|
||||
$mysql = "SELECT m.added::date AS date,m.terminatingamount*0.01 AS amount,m.fee*0.01 as fee, "
|
||||
. "r.firstname||' '||r.lastname||'<br><b>Acc:</b>'||r.account_no||'-'||b.name AS Recitient,mp.confirmation,"
|
||||
. "CASE WHEN m.status=1 THEN 'Pending' WHEN m.status=3 THEN 'Cancelled' WHEN m.status=5 THEN 'Completed' ELSE '' END AS Status "
|
||||
. "FROM money_transfer m "
|
||||
. "LEFT JOIN sendmoney_recipient r ON r.id = m.recipientid "
|
||||
. "LEFT JOIN bank_entity_codes b ON b.code = r.bank_code "
|
||||
. "LEFT JOIN members_payments mp ON mp.what_sendmoney = m.id "
|
||||
. "WHERE m.member_id =" . $_SESSION['member_id'] . " AND mp.confirmation IS NOT NULL ORDER BY m.id DESC LIMIT 4";
|
||||
. "r.firstname||' '||r.lastname||'<br><b>Acc:</b>'||r.account_no||'-'||b.name AS Recitient,mp.confirmation,"
|
||||
. "CASE WHEN m.status=1 THEN 'Pending' WHEN m.status=3 THEN 'Cancelled' WHEN m.status=5 THEN 'Completed' ELSE '' END AS Status "
|
||||
. "FROM money_transfer m "
|
||||
. "LEFT JOIN sendmoney_recipient r ON r.id = m.recipientid "
|
||||
. "LEFT JOIN bank_entity_codes b ON b.code = r.bank_code "
|
||||
. "LEFT JOIN members_payments mp ON mp.what_sendmoney = m.id "
|
||||
. "WHERE m.member_id =" . $_SESSION['member_id'] . " AND mp.confirmation IS NOT NULL ORDER BY m.id DESC LIMIT 4";
|
||||
|
||||
$query = $this->db->query($mysql);
|
||||
$this->table->set_heading('Date', 'Amount','Fee','Recipient','Confirmation', 'Status');
|
||||
$data['sendmoney_table'] = $this->table->generate($query);
|
||||
$data['sendmoney_table_result'] = $query->result();
|
||||
$data['page_title'] ="Wallet";
|
||||
|
||||
$this->RenderUserPage('users/view_balance', $data);
|
||||
|
||||
|
||||
$this->RenderUserPage('users/view_smoney', $data);
|
||||
}
|
||||
|
||||
|
||||
public function fee() {
|
||||
$amount = $this->input->get('amount') + 0;
|
||||
$res = $this->transactionFee($amount, $_SESSION['member_id']);
|
||||
@@ -705,41 +829,41 @@ class Member extends Users_Controller {
|
||||
public function confirmwithdraw() {
|
||||
$final_page = false;
|
||||
$data = $this->getSessionArray();
|
||||
|
||||
//$data = $this->getSessionArray();
|
||||
|
||||
if ($_POST) {
|
||||
$smIn =[];
|
||||
$smIn['member_id'] = $_SESSION['member_id'];
|
||||
$smIn['action'] = WRENCHBOARD_SMONEY_MEMBER;
|
||||
$smIn["senderid"] = $_SESSION['member_id'];
|
||||
$smIn["InitiatingEntityCode"] = "MBA";
|
||||
|
||||
//$data = array();
|
||||
$data['member_id'] = $_SESSION['member_id'];
|
||||
$data['action'] = WRENCHBOARD_SMONEY_MEMBER;
|
||||
$data["senderid"] = $_SESSION['member_id'];
|
||||
$data["InitiatingEntityCode"] = "MBA";
|
||||
$smIn['InitiatingAmount'] = $this->input->post('amount') * 100;
|
||||
$smIn['Fee'] = $this->input->post('fee') * 100;
|
||||
|
||||
$data['InitiatingAmount'] = $this->input->post('amount') * 100;
|
||||
$data['Fee'] = $this->input->post('fee') * 100;
|
||||
$smIn["InitiatingChannel"] = 7;
|
||||
$smIn["InitiatingPaymentMethodCode"] = "CA";
|
||||
$smIn["InitiatingCurrencyCode"] = '566'; // 566 - NRN - Naira
|
||||
//$smIn["recipientid"] = $this->input->post('recipient_account');
|
||||
$smIn['recipientid'] = $this->input->post('recipientid');
|
||||
$smIn["transaction_id"] = "T" . rand(120000, 999999);
|
||||
$smIn["TerminatingPaymentMethodCode"] = "AC";
|
||||
$smIn["TerminatingAmount"] = $smIn["InitiatingAmount"];
|
||||
$smIn["TerminatingCurrencyCode"] = '566'; // 566 - NRN - Naira
|
||||
$smIn["TerminatingCountryCode"] = 'NG'; // NG - Nigeria
|
||||
|
||||
$data["InitiatingChannel"] = 7;
|
||||
$data["InitiatingPaymentMethodCode"] = "CA";
|
||||
$data["InitiatingCurrencyCode"] = '566'; // 566 - NRN - Naira
|
||||
//$data["recipientid"] = $this->input->post('recipient_account');
|
||||
$data['recipientid'] = $this->input->post('recipientid');
|
||||
$data["transaction_id"] = "T" . rand(120000, 999999);
|
||||
$data["TerminatingPaymentMethodCode"] = "AC";
|
||||
$data["TerminatingAmount"] = $data["InitiatingAmount"];
|
||||
$data["TerminatingCurrencyCode"] = '566'; // 566 - NRN - Naira
|
||||
$data["TerminatingCountryCode"] = 'NG'; // NG - Nigeria
|
||||
$final_page = true;
|
||||
if ($data['recipientid'] != '' && $data['recipientid'] > 0 && $data['InitiatingAmount'] > 0 && $data['Fee'] >= 0) {
|
||||
if ($smIn['recipientid'] != '' && $smIn['recipientid'] > 0 && $smIn['InitiatingAmount'] > 0 && $smIn['Fee'] >= 0) {
|
||||
$this->load->model('backend_model');
|
||||
$out = array();
|
||||
$res = $this->backend_model->wrenchboard_api($data, $out);
|
||||
$res = $this->backend_model->wrenchboard_api($smIn, $out);
|
||||
// print_r($out);
|
||||
// exit;
|
||||
$data = $this->getSessionArray(); // you will need this for new balace
|
||||
$data["fee"] = $out["Fee"];
|
||||
$data["amount"] = $out["InitiatingAmount"];
|
||||
$data["total"] = $data["fee"] + $data["amount"];
|
||||
$data["recipient_account_detail"] = "Recipient Account Here";
|
||||
$data["comment"] = "Coment Here";
|
||||
$data["comment"] = "Comment Here";
|
||||
|
||||
$data["rec_firstname"] = $out["firstname"];
|
||||
$data["rec_lastname"] = $out["lastname"];
|
||||
@@ -770,7 +894,10 @@ class Member extends Users_Controller {
|
||||
*/
|
||||
} else {
|
||||
$pending_sendmoney = $this->session->flashdata('pending_sendmoney');
|
||||
$data['amount'] = 0;
|
||||
// var_dump($pending_sendmoney);
|
||||
if (!isset($pending_sendmoney)){
|
||||
redirect('member/balance');
|
||||
}
|
||||
$data['amount'] = $pending_sendmoney['amount'];
|
||||
$data['total'] = $pending_sendmoney['total'];
|
||||
$data['fee'] = $pending_sendmoney['fee'];
|
||||
@@ -782,18 +909,45 @@ class Member extends Users_Controller {
|
||||
$this->load->model('combo_model');
|
||||
$this->combo_model->setReadOnly(true);
|
||||
$data['recipient_account_combo'] = $this->combo_model->getUserRecipientCombo('recipient_account', $_SESSION['member_id'], $data['recipient_account']);
|
||||
|
||||
// $this->load->view('users/view_header_user', $data);
|
||||
$this->RenderUserPage('users/view_confirmwithdraw', $data);
|
||||
// $this->load->view('users/view_footer_user', $data);
|
||||
$data['sendmoney_table_result'] = $this->getSendMoneyRecent();
|
||||
$this->RenderUserPage('users/view_confirmwithdraw', $data);
|
||||
} else {
|
||||
|
||||
//$this->load->view('users/view_header_user', $data);
|
||||
$this->RenderUserPage('users/view_finalwithdraw', $data);
|
||||
// $this->load->view('users/view_footer_user', $data);
|
||||
$data['sendmoney_table_result'] = $this->getSendMoneyRecent();
|
||||
$this->session->set_flashdata('reciept_sendmoney', $data);
|
||||
redirect('member/sendMoneyReciepts');
|
||||
|
||||
// $data['sendmoney_table_result'] = $this->getSendMoneyRecent();
|
||||
// $this->RenderUserPage('users/view_finalwithdraw', $data);
|
||||
}
|
||||
}
|
||||
|
||||
public function sendMoneyReciepts(){
|
||||
|
||||
$data = $this->session->flashdata('reciept_sendmoney');
|
||||
// var_dump($pending_sendmoney);
|
||||
if (!isset($data)){
|
||||
redirect('member/balance');
|
||||
}
|
||||
|
||||
$data['sendmoney_table_result'] = $this->getSendMoneyRecent();
|
||||
$this->RenderUserPage('users/view_finalwithdraw', $data);
|
||||
}
|
||||
|
||||
private function getSendMoneyRecent(){
|
||||
|
||||
$mysql = "SELECT m.added::date AS date,m.terminatingamount*0.01 AS amount,m.fee*0.01 as fee, "
|
||||
. "r.firstname||' '||r.lastname||'<br><b>Acc:</b>'||r.account_no||'-'||b.name AS Recitient,mp.confirmation,"
|
||||
. "CASE WHEN m.status=1 THEN 'Pending' WHEN m.status=3 THEN 'Cancelled' WHEN m.status=5 THEN 'Completed' ELSE '' END AS Status "
|
||||
. "FROM money_transfer m "
|
||||
. "LEFT JOIN sendmoney_recipient r ON r.id = m.recipientid "
|
||||
. "LEFT JOIN bank_entity_codes b ON b.code = r.bank_code "
|
||||
. "LEFT JOIN members_payments mp ON mp.what_sendmoney = m.id "
|
||||
. "WHERE m.member_id =" . $_SESSION['member_id'] . " AND mp.confirmation IS NOT NULL ORDER BY m.id DESC LIMIT 4";
|
||||
|
||||
$query = $this->db->query($mysql);
|
||||
return $query->result();
|
||||
|
||||
}
|
||||
public function completewithdraw() {
|
||||
|
||||
echo 'Not attached - backend implemented already';
|
||||
@@ -817,7 +971,7 @@ class Member extends Users_Controller {
|
||||
|
||||
$myTable .="</table>";
|
||||
|
||||
|
||||
$data['page_title'] ="Messages";
|
||||
//$this->table->set_heading(array('data' => 'Date', 'style' => 'width:110px'), 'Message');
|
||||
$data['message_table'] = $myTable; //$this->table->generate($query);
|
||||
$this->RenderUserPage('users/view_message', $data);
|
||||
@@ -894,7 +1048,11 @@ class Member extends Users_Controller {
|
||||
|
||||
$this->load->library('pagination');
|
||||
$config = array();
|
||||
|
||||
/*
|
||||
*
|
||||
* 7 | MEMBER_NEWCARD_PAYM | MNCCD | 0
|
||||
8 | MEMBER_RETCARD_PAYM | MRCCD | 0
|
||||
*/
|
||||
|
||||
$this->load->library('table');
|
||||
$this->table->set_template($this->template);
|
||||
@@ -902,7 +1060,10 @@ class Member extends Users_Controller {
|
||||
. "WHEN code ='OFRFD' THEN 'Job Offer Refund' WHEN code='MDEPT' THEN 'Account Depoist' "
|
||||
. "WHEN code ='SMPAY' THEN 'Account Withdraw' "
|
||||
. "WHEN code ='COCNL' THEN 'Cancellation Refund' "
|
||||
. "WHEN code ='COPAY' THEN 'Completed Task Payment' ELSE '' END) AS Description,amount*0.01 AS amount,fee*0.01 as fee,confirmation "
|
||||
. "WHEN code ='COPAY' THEN 'Completed Task Payment' "
|
||||
. "WHEN code ='MNCCD' THEN 'New Card Payment' "
|
||||
. "WHEN code ='MRCCD' THEN 'Repeat Card Payment' "
|
||||
. "ELSE '' END) AS Description,amount*0.01 AS amount,fee*0.01 as fee,confirmation "
|
||||
. "FROM members_payments "
|
||||
. "WHERE member_id = " . $_SESSION['member_id'] . " AND status = 1 ORDER BY id DESC";
|
||||
$query = $this->db->query($mysql);
|
||||
@@ -935,20 +1096,25 @@ class Member extends Users_Controller {
|
||||
$page = is_numeric($page) ? $page : 0;
|
||||
|
||||
$mysql = "SELECT added::date,(CASE WHEN code = 'OFDPS' THEN 'Job Offer Deposit' "
|
||||
. "WHEN code ='OFRFD' THEN 'Job Offer Refund' WHEN code='MDEPT' THEN 'Account Depoist' "
|
||||
. "WHEN code ='SMPAY' THEN 'Account Withdraw' "
|
||||
. "WHEN code ='COCNL' THEN 'Cancellation Refund' "
|
||||
. "WHEN code ='COPAY' THEN 'Completed Task Payment' ELSE '' END) AS Description,amount*0.01 AS amount,fee*0.01 as fee,confirmation "
|
||||
. "FROM members_payments "
|
||||
. "WHERE member_id = " . $_SESSION['member_id'] . " AND status = 1 ORDER BY id DESC LIMIT " . $config["per_page"] . " OFFSET " . $page;
|
||||
. "WHEN code ='OFRFD' THEN 'Job Offer Refund' WHEN code='MDEPT' THEN 'Account Depoist' "
|
||||
. "WHEN code ='SMPAY' THEN 'Account Withdraw' "
|
||||
. "WHEN code ='COCNL' THEN 'Cancellation Refund' "
|
||||
. "WHEN code ='COPAY' THEN 'Completed Task Payment' "
|
||||
. "WHEN code ='MNCCD' THEN 'New Card Payment' "
|
||||
. "WHEN code ='MRCCD' THEN 'Repeat Card Payment' "
|
||||
. "ELSE '' END) AS Description,amount*0.01 AS amount,fee*0.01 as fee,confirmation "
|
||||
. "FROM members_payments "
|
||||
. "WHERE member_id = " . $_SESSION['member_id'] . " AND status = 1 ORDER BY id DESC LIMIT " . $config["per_page"] . " OFFSET " . $page;
|
||||
|
||||
$query = $this->db->query($mysql);
|
||||
|
||||
$this->table->set_heading(array('data' => 'Date', 'style' => 'width:110px'), 'Description', array('data' => 'Amount', 'style' => 'width:100px'), array('data' => 'Fee', 'style' => 'width:70px'), array('data' => 'Confirmation', 'style' => 'width:100px'));
|
||||
$data['payment_result'] = $this->table->generate($query);
|
||||
$data['payment_data_result'] = $query->result();
|
||||
$data["links"] = $this->pagination->create_links();
|
||||
|
||||
// $this->load->view('users/view_header_user', $data);
|
||||
$data['page_title'] ="Payments Report";
|
||||
$this->RenderUserPage('users/view_payment', $data);
|
||||
// $this->load->view('users/view_footer_user', $data);
|
||||
}
|
||||
@@ -1054,9 +1220,12 @@ class Member extends Users_Controller {
|
||||
|
||||
$data["calendar_data"] = $calendar_data;
|
||||
|
||||
$this->load->view('users/view_header_user', $data);
|
||||
$this->load->view('users/view_schedule', $data);
|
||||
$this->load->view('users/view_footer_user', $data);
|
||||
// $this->load->view('users/view_header_user', $data);
|
||||
// $this->load->view('users/view_schedule', $data);
|
||||
// $this->load->view('users/view_footer_user', $data);
|
||||
|
||||
$this->renderSecurePage('users/view_schedule', $data);
|
||||
|
||||
}
|
||||
|
||||
public function userlog() {
|
||||
@@ -1079,11 +1248,53 @@ class Member extends Users_Controller {
|
||||
public function settings() {
|
||||
|
||||
$data = $this->getSessionArray();
|
||||
$this->load->view('users/view_header_user', $data);
|
||||
$this->load->view('users/view_settings', $data);
|
||||
$this->load->view('users/view_footer_user', $data);
|
||||
$q = "SELECT id,title,description,pref_id FROM members_settings_options ORDER BY lorder ASC";
|
||||
$query = $this->db->query($q);
|
||||
$data['settings_option'] = $query->result_array();
|
||||
|
||||
$q2 = "SELECT pref_id FROM members_settings WHERE member_id = " . $_SESSION['member_id'] . " AND status = 100";
|
||||
$query2 = $this->db->query($q2);
|
||||
|
||||
$selRes = [];
|
||||
$sel_vals = $query2->result_array();
|
||||
foreach ($sel_vals as $rw){
|
||||
$selRes[] =$rw['pref_id'];
|
||||
}
|
||||
|
||||
$data['selected_settings'] = $selRes;
|
||||
|
||||
$this->RenderUserPage('users/view_settings', $data);
|
||||
}
|
||||
|
||||
public function accsettings(){
|
||||
$data = $this->getSessionArray();
|
||||
|
||||
if ($_GET) {
|
||||
|
||||
$set_type = $this->input->get('set_type');
|
||||
$seval = $this->input->get('seval');
|
||||
if ( $set_type !='' && $seval !='' ){
|
||||
$in = array();
|
||||
$in['status'] =$seval;
|
||||
$in['pref_id'] =$set_type;
|
||||
$in['action'] = WRENCHBOARD_USER_SETTINGS;
|
||||
$in['sessionid'] = $_SESSION['session_id'];
|
||||
$in['member_id'] = $_SESSION['member_id'];
|
||||
$this->load->model('backend_model');
|
||||
$out = array();
|
||||
$res = $this->backend_model->wrenchboard_api($in, $out);
|
||||
if ($res != PHP_API_OK) {
|
||||
echo '<span style=\"color: green;\">updated</span>';
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private function AgetSessionArray() {
|
||||
$data = $_SESSION['secure_data'];
|
||||
$data['username'] = $_SESSION['username']; // = $this->input->post('username');
|
||||
|
||||
@@ -7,9 +7,10 @@ class Outmessage extends CI_Controller {
|
||||
$data['account_email'] = ''; //$data['username'];
|
||||
$data['title'] = "Message"; //ucfirst($page); // Capitalize the first letter
|
||||
$data['page_title'] = "Verify Email.";
|
||||
$this->load->view('templates/header_boxed', $data);
|
||||
$this->load->view('users/view_outmessage', $data);
|
||||
$this->load->view('templates/footer_boxed', $data);
|
||||
//$this->load->view('templates/header_boxed', $data);
|
||||
//$this->load->view('users/view_outmessage', $data);
|
||||
//$this->load->view('templates/footer_boxed', $data);
|
||||
$this->load->view('site3/external/view_signup_started',$data);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -5,29 +5,25 @@ defined('BASEPATH') OR exit('No direct script access allowed');
|
||||
class Password_recovery extends CI_Controller {
|
||||
|
||||
public function index() {
|
||||
//echo "ameye kvkgkg";
|
||||
$data['action_message'] = "";
|
||||
|
||||
|
||||
if ($_POST) {
|
||||
|
||||
$data['email'] = $this->input->post('email');
|
||||
if ($data['email'] == '') {
|
||||
$out['error'] = 'Please specify valid emal to continue';
|
||||
$data['action_message'] = "<div class=\"text-left\"><div class=\"alert alert-danger no-border\">" . $out['error'] . "</div></div>";
|
||||
} else {
|
||||
//WRENCHBOARD_ACCOUNT_RESETPASS
|
||||
|
||||
$this->resetMemberPass($data['email']);
|
||||
|
||||
$out['error'] = "If we find your email, you will receive a link to reset your password. Please use or <a href='/contact'>contact form</a> if you did not get our message after few minutes. ";
|
||||
$out['error'] = " If we find your email, you will receive a link to reset your password. Please use or <a
|
||||
href='https://www.wrenchboard.com/contact'>contact form</a> if you did not get our message after few minutes. ";
|
||||
$data['action_message'] = "<div class=\"text-left\"><div class=\"alert alert-info no-border\">" . $out['error'] . "</div></div>";
|
||||
}
|
||||
}
|
||||
$data["message"] = "Enter your account username, Email.<br> We will send you an email to reset your password";
|
||||
$this->load->view('users/view_external_header');
|
||||
$this->load->view('users/view_password_recovery', $data);
|
||||
$this->load->view('users/view_external_footer');
|
||||
// $this->load->view('users/view_external_header');
|
||||
// $this->load->view('users/view_password_recovery', $data);
|
||||
// $this->load->view('users/view_external_footer');
|
||||
$this->load->view('site3/external/view_resetpass',$data);
|
||||
//
|
||||
}
|
||||
|
||||
var $actionMessage = '';
|
||||
|
||||
@@ -0,0 +1,152 @@
|
||||
<?php
|
||||
|
||||
class Paymnt extends Users_Controller {
|
||||
|
||||
public function index() {
|
||||
|
||||
$data = $this->getSessionArray();
|
||||
if (!isset($_SESSION['username']) or $_SESSION['username'] == '') {
|
||||
redirect(home);
|
||||
} else {
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
public function paymus() {
|
||||
$data = $this->getSessionArray();
|
||||
$data['card_table_result'] = $this->cardListData(4)['card_table_result'];
|
||||
$data['page_title'] ="Deposit Funds";
|
||||
// $this->RenderUserPage('users/view_startpaymus', $data);
|
||||
$this->RenderUserPage('users/view_selectpay', $data);
|
||||
}
|
||||
|
||||
public function paycc() {
|
||||
$data = $this->getSessionArray();
|
||||
$data['card_table_result'] = $this->cardListData(4)['card_table_result'];
|
||||
$data['page_title'] ="Deposit Funds with Credit or Debit Card(s)";
|
||||
$this->RenderUserPage('users/view_startpaymus', $data);
|
||||
}
|
||||
|
||||
public function paypal() {
|
||||
$data = $this->getSessionArray();
|
||||
$data['card_table_result'] = $this->cardListData(4)['card_table_result'];
|
||||
$data['page_title'] ="Deposit Funds with PayPal";
|
||||
$this->RenderUserPage('users/view_paypal', $data);
|
||||
}
|
||||
|
||||
public function paybankdeposit() {
|
||||
$data = $this->getSessionArray();
|
||||
$data['card_table_result'] = $this->cardListData(4)['card_table_result'];
|
||||
$data['page_title'] ="Deposit Funds";
|
||||
|
||||
$this->load->library('table');
|
||||
$this->table->set_template($this->template);
|
||||
$mysql = "SELECT m.added::date AS date,m.terminatingamount*0.01 AS amount,m.fee*0.01 as fee, "
|
||||
. "r.firstname||' '||r.lastname||'<br><b>Acc:</b>'||r.account_no||'-'||b.name AS Recitient,mp.confirmation,"
|
||||
. "CASE WHEN m.status=1 THEN 'Pending' WHEN m.status=3 THEN 'Cancelled' WHEN m.status=5 THEN 'Completed' ELSE '' END AS Status "
|
||||
. "FROM money_transfer m "
|
||||
. "LEFT JOIN sendmoney_recipient r ON r.id = m.recipientid "
|
||||
. "LEFT JOIN bank_entity_codes b ON b.code = r.bank_code "
|
||||
. "LEFT JOIN members_payments mp ON mp.what_sendmoney = m.id "
|
||||
. "WHERE m.member_id =" . $_SESSION['member_id'] . " AND mp.confirmation IS NOT NULL ORDER BY m.id DESC LIMIT 4";
|
||||
|
||||
$query = $this->db->query($mysql);
|
||||
$this->table->set_heading('Date', 'Amount','Fee','Recipient','Confirmation', 'Status');
|
||||
$data['sendmoney_table'] = $this->table->generate($query);
|
||||
$data['sendmoney_table_result'] = $query->result();
|
||||
|
||||
|
||||
$data['page_key'] = 'WRB_FUND_ACCOUNT';
|
||||
$data['txt_detail'] = $this->readFixedText($data['page_key']);
|
||||
$data['txt_detail'] = str_replace("[how-it-worked-image-1]", "<img src='/assets/images/howitworks/howitworks-1.jpg' alt=''>", $data['txt_detail']);
|
||||
$data['txt_detail'] = str_replace("[how-it-worked-image-2]", "<img src='/assets/images/howitworks/howitworks-2.jpg' alt=''>", $data['txt_detail']);
|
||||
|
||||
$this->RenderUserPage('users/view_bankdeposit', $data);
|
||||
}
|
||||
|
||||
|
||||
private function cardListData($limit){
|
||||
$data = array();
|
||||
$mysql = "SELECT * FROM creditcard WHERE member_id = " . $_SESSION['member_id'] . " AND status =3 AND active =1 ORDER BY id DESC limit ".$limit;
|
||||
$query = $this->db->query($mysql);
|
||||
$data['card_table_result'] = $query->result();
|
||||
return $data;
|
||||
}
|
||||
|
||||
|
||||
|
||||
public function newcc(){
|
||||
$data = $this->getSessionArray();
|
||||
if ($_POST) {
|
||||
$this->load->model('cardpay_model');
|
||||
$cd = array();
|
||||
$cd['cardnumber'] = $this->input->post('cardnumber');
|
||||
$cd['exp_month'] = $this->input->post('exp_month');
|
||||
$cd['exp_year'] = $this->input->post('exp_year');
|
||||
$cd['cvc'] = $this->input->post('cvc');
|
||||
$cd['description']= $this->input->post('description');
|
||||
//$amount = rand(5555,9999);
|
||||
$amount = rand(450,700);
|
||||
|
||||
$cardTestResult= $this->cardpay_model->verifyCardData($cd);
|
||||
|
||||
//var_dump($cardTestResult);
|
||||
//var_dump($cd);
|
||||
|
||||
|
||||
if ( $cardTestResult['error_status'] == false) // no error
|
||||
{
|
||||
$member_id = $_SESSION['member_id'];
|
||||
$email ="support@wrenchboard.com";
|
||||
$cardData=array(
|
||||
"action" => WRENCHBOARD_USER_ADNEWCC,
|
||||
"cardnumber" => $cd['cardnumber'],
|
||||
"exp_month" => $cd['exp_month'],
|
||||
"exp_year" => $cd['exp_year'],
|
||||
"cvc" => $cd['cvc'],
|
||||
"amount" => $amount ,
|
||||
"email" => $email,
|
||||
"description" => $cd['description'],
|
||||
"member_id" => $member_id,
|
||||
"paymenttype" => 100
|
||||
);
|
||||
$out=array();
|
||||
$this->load->model('backend_model');
|
||||
$res = $this->backend_model->wrenchboard_api($cardData, $out);
|
||||
|
||||
// var_dump($res);
|
||||
// exit();
|
||||
$out['order_id'] = $res;
|
||||
if ($res > 0 && isset($out) && isset($out['confirmation']) && $out['confirmation']!='') {
|
||||
// we are good
|
||||
$this->session->set_flashdata('reciept_data', $out);
|
||||
redirect("paymnt/cardreciepts");
|
||||
|
||||
} else {
|
||||
// not good
|
||||
$this->session->set_flashdata('reciept_data', $out);
|
||||
redirect("paymnt/cardreciepts");
|
||||
}
|
||||
|
||||
} // no error(s) from card test PHP model
|
||||
else{
|
||||
$data['card_test_result'] = $cardTestResult;
|
||||
$data['card_table_result'] = $this->cardListData(4)['card_table_result'];
|
||||
$this->RenderUserPage('users/view_startpaymus', $data); // return back to card page
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
return $this->paymus();
|
||||
}
|
||||
}
|
||||
|
||||
public function cardreciepts(){
|
||||
|
||||
$data = array_merge($this->getSessionArray(), $this->session->flashdata('reciept_data'));
|
||||
if (!isset($data['confirmation'])){
|
||||
redirect("dash");
|
||||
}
|
||||
$this->RenderUserPage('users/view_payreciepts', $data); // return back to card page
|
||||
}
|
||||
}
|
||||
@@ -14,17 +14,7 @@ class Plb extends WRB_Controller {
|
||||
}
|
||||
|
||||
private function jobViewPage($offerCode) {
|
||||
/* $data['sitename'] = 'home';
|
||||
$this->load->view('templates/header_boxed', $data);
|
||||
$this->load->view('users/view_index');
|
||||
$this->load->view('users/view_external_footer');
|
||||
* */
|
||||
// $this->load->view('users/view_index');
|
||||
// $this->load->view('users/view_external_footer');
|
||||
|
||||
$data = array();
|
||||
|
||||
|
||||
$mysql = "SELECT jo.expire,jo.id AS offer_id, jo.offer_code,mj.title,mj.description,mj.timeline_days,mj.price,jo.job_description FROM members_jobs_offer jo "
|
||||
. " LEFT JOIN members_jobs mj ON mj.id=jo.job_id "
|
||||
. " WHERE mj.status=1 AND jo.status=1 "
|
||||
@@ -55,25 +45,9 @@ class Plb extends WRB_Controller {
|
||||
. " WHERE o.public_view =1 AND o.offer_code<>'" . $offerCode . "' AND o.expire> now() AND o.status=1 ORDER BY o.id DESC LIMIT 50";
|
||||
$query = $this->db->query($mysql2);
|
||||
$data["numof_other_jobs"] = $query->num_rows();
|
||||
$data["job_data"] = $query->result();
|
||||
$data["job_data"] = $query->result()[0];
|
||||
|
||||
|
||||
|
||||
/*
|
||||
$mysql2 = " SELECT o.*,j.title,j.description,j.timeline_days,j.price,j FROM members_jobs_offer o "
|
||||
. " LEFT JOIN members_jobs j ON j.id =o.job_id "
|
||||
. " WHERE o.public_view =1 AND o.offer_code<>'" . $offerCode . "' AND o.expire> now() ORDER BY o.id DESC LIMIT 50";
|
||||
|
||||
|
||||
$query = $this->db->query($mysql2);
|
||||
$data["numof_other_jobs"] = $query->num_rows();
|
||||
$data["job_data"] = $query->result();
|
||||
*/
|
||||
|
||||
|
||||
$this->load->view('templates/view_header_market', $data);
|
||||
$this->load->view('site/view_market', $data);
|
||||
$this->load->view('templates/view_footer_market', $data);
|
||||
$this->load->view('site3/external/view_market',$data);
|
||||
}
|
||||
|
||||
private function makeMarketTableRow($row) {
|
||||
@@ -92,13 +66,13 @@ class Plb extends WRB_Controller {
|
||||
|
||||
|
||||
|
||||
return "<table class='table table-striped table-hover table-bordered table-condensed'><tr><td colspan='2' ><b> Timeline:</b>" . $row['timeline_days'] . " day(s) - <b>Budget: </b> " . $row['price'] * 0.01 . " Naira</td></tr>"
|
||||
return "<table class='table table align-middle gs-0 gy-5'><tr><td colspan='2' ><b> Timeline:</b>" . $row['timeline_days'] . " day(s) - <b>Budget: </b> " . $row['price'] * 0.01 . " Naira</td></tr>"
|
||||
. "<tr><td style='width:100px;'><b>Title</b></td><td>" . $row['title'] . "</td></tr>"
|
||||
. "<tr><td><b>Description</b></td><td>" . $row['description'] . "</td></tr>"
|
||||
. "<tr><td><b>Detail</b></td><td>" . $row['job_description'] . "</td></tr>"
|
||||
. "<tr><td colspan='2' >Interests : <b>" . $data['interest'] . "</b> Expire:<b> " . $row['expire'] . "</b> </td></tr>"
|
||||
. "<tr><td><b></b></td><td style='text-align:right;'><input type=submit id='submit_interest_" . $row['offer_code'] . "' name=\"mview\" onclick=\"return LoginInterest('" . $row['offer_code'] . "');\" class=\"btn btn-success btn-xs\" value=\"see more ?
|
||||
\"></td></tr>"
|
||||
|
||||
. "<tr><td><b></b></td><td style='text-align:right;'><a class=\"btn btn-primary btn-xs\" href='/login'>See More</a></td></tr>tr>"
|
||||
. "</table> ";
|
||||
}
|
||||
|
||||
|
||||
@@ -125,9 +125,12 @@ class Proj extends Users_Controller {
|
||||
$data['current_balance'] = $out['current_balance'];
|
||||
$data['new_message'] = $out['new_message'];
|
||||
|
||||
$this->load->view('users/view_header_user', $data);
|
||||
/* $this->load->view('users/view_header_user', $data);
|
||||
$this->load->view('jobs/view_activejob', $data);
|
||||
$this->load->view('users/view_footer_user', $data);
|
||||
$this->load->view('users/view_footer_user', $data);*/
|
||||
//view_pastduejob.php
|
||||
$data['page_title'] ="Past Due";
|
||||
$this->renderSecurePage('jobs/view_pastduejob', $data);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -232,9 +235,13 @@ class Proj extends Users_Controller {
|
||||
$data['current_balance'] = $out['current_balance'];
|
||||
$data['new_message'] = $out['new_message'];
|
||||
|
||||
$this->load->view('users/view_header_user', $data);
|
||||
/* $this->load->view('users/view_header_user', $data);
|
||||
$this->load->view('jobs/view_activejob', $data);
|
||||
$this->load->view('users/view_footer_user', $data);
|
||||
$this->load->view('users/view_footer_user', $data);*/
|
||||
|
||||
$data['page_title'] = "Active Task";
|
||||
$this->RenderUserPage('jobs/view_activejob', $data);
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@@ -905,9 +912,10 @@ $data = $this->getSessionArray();
|
||||
|
||||
|
||||
|
||||
$this->load->view('users/view_header_user', $data);
|
||||
$this->load->view('jobs/view_completejob', $data);
|
||||
$this->load->view('users/view_footer_user', $data);
|
||||
// $this->load->view('users/view_header_user', $data);
|
||||
// $this->load->view('jobs/view_completejob', $data);
|
||||
// $this->load->view('users/view_footer_user', $data);
|
||||
$this->renderSecurePage('jobs/view_completejob', $data);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1010,10 +1018,13 @@ $data = $this->getSessionArray();
|
||||
$data['new_message'] = $out['new_message'];
|
||||
|
||||
|
||||
|
||||
/*
|
||||
$this->load->view('users/view_header_user', $data);
|
||||
$this->load->view('jobs/view_mycompletejob', $data);
|
||||
$this->load->view('users/view_footer_user', $data);
|
||||
*/
|
||||
$data['page_title'] ="Previous Tasks";
|
||||
$this->renderSecurePage('jobs/view_mycompletejob', $data);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -95,13 +95,15 @@ class Refer extends Users_Controller {
|
||||
$this->table->set_heading(array('data' => 'Added/Name', 'style' => 'width:170px'), 'Email', array('data' => 'Status', 'style' => 'width:80px'));
|
||||
|
||||
$data['refer_table'] = $this->table->generate($query);
|
||||
|
||||
$data['refer_table_result'] =$query->result();
|
||||
|
||||
$data['page_title'] ="Refer a Friend";
|
||||
|
||||
/*
|
||||
$this->load->view('users/view_header_user', $data);
|
||||
$this->load->view('users/view_refer', $data);
|
||||
$this->load->view('users/view_footer_user', $data);
|
||||
*/
|
||||
$this->RenderUserPage('users/view_refer', $data);
|
||||
}
|
||||
|
||||
public function refagree() {
|
||||
|
||||
@@ -18,6 +18,7 @@ class Signup extends CI_Controller {
|
||||
$submit = NULL;
|
||||
|
||||
extract($_POST);
|
||||
//var_dump($_POST);
|
||||
|
||||
$data['firstname'] = $firstname;
|
||||
$data['lastname'] = $lastname;
|
||||
@@ -39,7 +40,8 @@ class Signup extends CI_Controller {
|
||||
$data['signup_error'] = '';
|
||||
|
||||
if ($_POST) { // post
|
||||
if ($data['terms'] == 'on') {
|
||||
if ($data['terms'] == 'on' || $data['terms'] == '1') {
|
||||
$data['terms'] == 'on';
|
||||
$terms_checked = 'checked';
|
||||
}
|
||||
|
||||
@@ -73,6 +75,7 @@ class Signup extends CI_Controller {
|
||||
} else {
|
||||
$data['signup_error'] = "Enter all required fields";
|
||||
}
|
||||
//exit;
|
||||
} // if post
|
||||
$data['signup_error_style'] = '';
|
||||
if (strlen($data['signup_error']) > 0) {
|
||||
@@ -81,10 +84,7 @@ class Signup extends CI_Controller {
|
||||
|
||||
|
||||
$data['terms'] = $terms_checked;
|
||||
|
||||
|
||||
$this->load->view('users/view_registration', $data);
|
||||
$this->load->view('users/view_external_footer', $data);
|
||||
$this->load->view('site3/external/view_signup',$data);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -2,6 +2,9 @@
|
||||
|
||||
defined('BASEPATH') OR exit('No direct script access allowed');
|
||||
|
||||
//Import Hybridauth's namespace
|
||||
use Hybridauth\Hybridauth;
|
||||
|
||||
class Site extends WRB_Controller {
|
||||
|
||||
public function index() {
|
||||
@@ -11,7 +14,25 @@ class Site extends WRB_Controller {
|
||||
$this->load->view('users/view_external_footer');
|
||||
* */
|
||||
|
||||
$this->home1();
|
||||
// Load Hybridauth's helper
|
||||
$this->load->helper('hybridauth');
|
||||
|
||||
/*
|
||||
// Instantiate Hybridauth's classes
|
||||
$hybrid = new Hybridauth(get_hybridauth_config());
|
||||
|
||||
// Get login links
|
||||
$login_links = get_hybridauth_links($hybrid, $this->router);
|
||||
*/
|
||||
$login_links = array(
|
||||
'Google' => get_google_login_link()
|
||||
);
|
||||
// Pass login links to html template
|
||||
$data['login_links'] = $login_links;
|
||||
|
||||
// Render html template
|
||||
$this->load->view('site3/external/view_home');
|
||||
///home/oameye/wrenchboard/www/application/views/site3/external
|
||||
}
|
||||
|
||||
public function registration() {
|
||||
|
||||
@@ -8,8 +8,9 @@ class Vemail extends CI_Controller {
|
||||
|
||||
$vlnk = NULL;
|
||||
$data['title'] = "Verify Email"; // Capitalize the first letter
|
||||
$data['page_title'] = "About WrenchBoard";
|
||||
$data['page_title'] = "Verify Signup";
|
||||
$data['email'] = "ameye@chiefsoft.com";
|
||||
$show_error=true;
|
||||
|
||||
extract($_GET);
|
||||
if (trim($vlnk) !== '') {
|
||||
@@ -28,12 +29,9 @@ class Vemail extends CI_Controller {
|
||||
$data['username'] = $ret->username;
|
||||
$res1 = $this->backend_model->wrenchboard_api($data, $out);
|
||||
if ($res1 > 0) {
|
||||
$this->load->view('users/view_vemail', $data);
|
||||
$this->load->view('site3/external/view_vemail', $data);
|
||||
$show_error = false;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
// make sure status is set to 5 : complete
|
||||
}
|
||||
// call backend to create the account now
|
||||
@@ -43,9 +41,10 @@ class Vemail extends CI_Controller {
|
||||
}
|
||||
}
|
||||
// IF YOU GET HERE - ERROR PAGE
|
||||
// $this->load->view('templates/header_boxed', $data);
|
||||
$this->load->view('users/view_error', $data);
|
||||
// $this->load->view('templates/footer_boxed', $data);
|
||||
if ($show_error == true){
|
||||
$this->load->view('site3/external/view_error', $data);
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -0,0 +1,19 @@
|
||||
<?php
|
||||
|
||||
defined('BASEPATH') OR exit('No direct script access allowed');
|
||||
|
||||
class Wallet extends Users_Controller {
|
||||
|
||||
public function index() {
|
||||
//
|
||||
if (!isset($_SESSION['username']) or $_SESSION['username'] == '') {
|
||||
redirect(home);
|
||||
} else {
|
||||
|
||||
redirect(dash);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
||||
@@ -74,17 +74,22 @@ class WRB_Controller extends CI_Controller {
|
||||
$out = $this->dash_model->getDashData($data);
|
||||
$data['active_task'] = $out['active_task'];
|
||||
$data['active_pass_due'] = $out['active_pass_due'];
|
||||
$data['current_balance'] = $out['current_balance'];
|
||||
$data['new_message'] = $out['new_message'];
|
||||
$_SESSION["active_offers_count"] = $out['active_offers_count'];
|
||||
|
||||
$data = $_SESSION['secure_data'];
|
||||
$this->load->model('account_model');
|
||||
$data['wallet'] = $this->account_model->getUserWallet($_SESSION['member_id'],$currency='NAIRA'); // $out['current_balance'];
|
||||
$data['current_balance'] = $data['wallet'][0]['current_balance'];
|
||||
|
||||
|
||||
$data = $_SESSION['secure_data'];
|
||||
$data['member_id'] = $_SESSION['member_id']; // = $ret->email;
|
||||
|
||||
$this->refreshAccountDetail($_SESSION['member_id']);
|
||||
return $data;
|
||||
}
|
||||
|
||||
|
||||
protected function logUser($mlog) {
|
||||
//
|
||||
$data['action'] = WRENCHBOARD_LOG_MEMBER;
|
||||
|
||||
@@ -0,0 +1,143 @@
|
||||
<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
|
||||
|
||||
/*
|
||||
POST /oauth2/v4/token HTTP/1.1
|
||||
Host: www.googleapis.com
|
||||
Content-length: 233
|
||||
content-type: application/x-www-form-urlencoded
|
||||
user-agent: google-oauth-playground
|
||||
code=4%2FKxoYTS-jeq5-d6Lv7YvSz9ZrK0pJ_5lZsMExzNC1M0o
|
||||
&redirect_uri=https%3A%2F%2Foameye.work.wrenchboard.com%2Flogin%2Fauth%2F
|
||||
&client_id=817021856543-ad9nsjgdpsu2s2jrl63j3ihrv7lbf6ma.apps.googleusercontent.com
|
||||
&client_secret=aozK_2G8UjaCmLgPPkv9abIm
|
||||
&scope=
|
||||
&grant_type=authorization_code
|
||||
|
||||
https://oameye.work.wrenchboard.com/login/auth/
|
||||
?state=HA-R5UG9ZADN2JL8MKPCV736QSIHTEXW4OF01YB
|
||||
&code=4/0AX4XfWjGtsNysrdFaHZLp6rIOKzZjMj4zmJTQrqu0NOBdEDEuYn9LoBzJoxDFgrw43BqGA
|
||||
&scope=email+profile+https://www.googleapis.com/auth/userinfo.email+https://www.googleapis.com/auth/userinfo.profile+openid&authuser=0&
|
||||
prompt=consent
|
||||
|
||||
|
||||
curl -X POST -d 'code=4/0AX4XfWjGtsNysrdFaHZLp6rIOKzZjMj4zmJTQrqu0NOBdEDEuYn9LoBzJoxDFgrw43BqGA&redirect_uri=https%3A%2F%2Foameye.work.wrenchboard.com%2Flogin%2Fauth%2F&client_id=817021856543-ad9nsjgdpsu2s2jrl63j3ihrv7lbf6ma.apps.googleusercontent.com&client_secret=aozK_2G8UjaCmLgPPkv9abIm&scope=&grant_type=authorization_code' https://www.googleapis.com/oauth2/v4/token
|
||||
|
||||
*/
|
||||
if ( ! function_exists('get_google_client'))
|
||||
{
|
||||
// Configure Google Client
|
||||
function get_google_client()
|
||||
{
|
||||
// init configuration
|
||||
$clientID = '817021856543-ad9nsjgdpsu2s2jrl63j3ihrv7lbf6ma.apps.googleusercontent.com';
|
||||
$clientSecret = 'aozK_2G8UjaCmLgPPkv9abIm';
|
||||
$redirectUri = site_url('login/auth/');
|
||||
|
||||
// create Client Request to access Google API
|
||||
$client = new Google_Client();
|
||||
$client->setClientId($clientID);
|
||||
$client->setClientSecret($clientSecret);
|
||||
$client->setRedirectUri($redirectUri);
|
||||
$client->addScope("email");
|
||||
$client->addScope("profile");
|
||||
|
||||
return $client;
|
||||
}
|
||||
}
|
||||
|
||||
if ( ! function_exists('get_google_login_link'))
|
||||
{
|
||||
// Get Google login link
|
||||
function get_google_login_link()
|
||||
{
|
||||
$client = get_google_client();
|
||||
return $client->createAuthUrl();
|
||||
}
|
||||
}
|
||||
|
||||
if ( ! function_exists('get_hybridauth_config'))
|
||||
{
|
||||
//Hybridauth configuration
|
||||
function get_hybridauth_config()
|
||||
{
|
||||
$config = array(
|
||||
|
||||
'callback' => site_url('login/auth/') ,
|
||||
|
||||
'providers' => array(
|
||||
'Google' => array(
|
||||
'enabled' => true,
|
||||
'keys' => array(
|
||||
'id' => '817021856543-ad9nsjgdpsu2s2jrl63j3ihrv7lbf6ma.apps.googleusercontent.com',
|
||||
'secret' => 'aozK_2G8UjaCmLgPPkv9abIm'
|
||||
) ,
|
||||
'scope' => 'https://www.googleapis.com/auth/plus.login https://www.googleapis.com/auth/userinfo.email https://www.googleapis.com/auth/userinfo.profile',
|
||||
) ,
|
||||
|
||||
'Facebook' => array(
|
||||
'enabled' => true,
|
||||
'keys' => array(
|
||||
'id' => (ENVIRONMENT == 'development') ? '390204307987009' : '390204307987009',
|
||||
'secret' => (ENVIRONMENT == 'development') ? '19f778e312f2ab96d147bacb612910c2' : '19f778e312f2ab96d147bacb612910c2'
|
||||
) ,
|
||||
'scope' => 'email, public_profile'
|
||||
) ,
|
||||
|
||||
'Apple' => array(
|
||||
"enabled" => true,
|
||||
"keys" => [
|
||||
"id" => "Your Apple ID",
|
||||
"team_id" => "Your Apple team id",
|
||||
"key_id" => "Your Apple key id",
|
||||
"key_content" => "Your Apple key (content including BEGIN and END lines)",
|
||||
"key_file" => "Full path to your Apple key file (alternative to key_content)"
|
||||
],
|
||||
"scope" => "name email",
|
||||
"verifyTokenSignature" => true
|
||||
)
|
||||
) ,
|
||||
|
||||
'hybrid_debug' => array(
|
||||
'debug_mode' => 'info', /* none, debug, info, error */
|
||||
'debug_file' => APPPATH . '/logs/log-' . date('Y-m-d') . '.php'
|
||||
)
|
||||
);
|
||||
|
||||
return $config;
|
||||
}
|
||||
}
|
||||
|
||||
if ( ! function_exists('get_hybridauth_links'))
|
||||
{
|
||||
function get_hybridauth_links($hybrid, $router)
|
||||
{
|
||||
$login_links = array();
|
||||
|
||||
//Get enabled providers array
|
||||
$providers = $hybrid->getProviders();
|
||||
|
||||
$provider_icons = array(
|
||||
'Apple' => '/site3/assets/media/svg/brand-logos/apple-black.svg',
|
||||
'Facebook' => '/site3/assets/media/svg/brand-logos/facebook-4.svg',
|
||||
'Google' => '/site3/assets/media/svg/brand-logos/google-icon.svg'
|
||||
);
|
||||
|
||||
//List a link to login
|
||||
foreach ($providers as $provider)
|
||||
{
|
||||
$login_links[$provider] = "";
|
||||
//$href = sprintf(base_url('%s/auth/%s/') , strtolower($router->fetch_class()) , $provider);
|
||||
$href = sprintf("%s/%s/", site_url('login/auth'), $provider);
|
||||
$login_links[$provider] = $href; // .= '<a href="' . $href . '" class="btn btn-flex flex-center btn-light btn-lg w-100 mb-5">';
|
||||
if (array_key_exists($provider, $provider_icons)) {
|
||||
// $login_links[$provider] .= '<img alt="Logo" src="' . $provider_icons[$provider] . '" class="h-20px me-3">';
|
||||
}
|
||||
// $login_links[$provider] .= 'Continue with ' . $provider . '</a>';
|
||||
}
|
||||
|
||||
return $login_links;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -43,14 +43,15 @@ class Bko_Controller extends WRB_Controller {
|
||||
$data = array();
|
||||
$this->load->library('table');
|
||||
$this->table->set_template($this->template);
|
||||
$mysql = "SELECT '<b>ADDED:</b>'||added::date||'<br><b>EXPIRE:</b>'||expire::date||'<br>'||username||'<br><b>Name:</b>'||firstname||' '||lastname AS signup,"
|
||||
$mysql = "SELECT '<b>ADDED:</b>'||added::date||'<br><b>EXPIRE:</b>'||expire::date||'<br>'||username||'<br><b>Name:</b>'||firstname||' '||lastname AS signup, country,"
|
||||
. " (CASE WHEN status=1 THEN '<div id=\"btu'||id||'\"><button id=\"acc'||id||'\" class=\"btn btn-info btn-xs\" onclick=\"return resendLink('''||id||''');\" >Resend</button></div>' ELSE ' ' END) AS action ,"
|
||||
. " (CASE WHEN status=1 THEN '<div id=\"dtu'||id||'\"><button id=\"del'||id||'\" class=\"btn btn-warning btn-xs\" onclick=\"return deleteLink('''||id||''');\" >Del</button></div>' ELSE ' ' END) AS Del "
|
||||
. " FROM members_pending WHERE expire> now() AND status = 1"
|
||||
. " ORDER BY id desc limit 5";
|
||||
$query = $this->db->query($mysql);
|
||||
// $this->table->set_heading('Dates', 'Username', 'Name', 'Action');
|
||||
$this->table->set_heading(array('data' => 'Date/Email/Name', 'style' => 'width:180px'), array('data' => 'RES', 'style' => 'width:20px; cellpadding:0px;'), array('data' => 'Del', 'style' => 'width:20px; cellpadding:0px;'));
|
||||
$this->table->set_heading(array('data' => 'Date/Email/Name', 'style' => 'width:180px'),array('data' => 'Country', 'style' => 'width:20px; cellpadding:0px;'),
|
||||
array('data' => 'RES', 'style' => 'width:20px; cellpadding:0px;'), array('data' => 'Del', 'style' => 'width:20px; cellpadding:0px;'));
|
||||
|
||||
$data['pending_dash_table'] = $this->table->generate($query);
|
||||
|
||||
|
||||
@@ -39,11 +39,19 @@ class Users_Controller extends WRB_Controller {
|
||||
$out = $this->dash_model->getDashData($data);
|
||||
$data['active_task'] = $out['active_task'];
|
||||
$data['active_pass_due'] = $out['active_pass_due'];
|
||||
$data['current_balance'] = $out['current_balance'];
|
||||
//$data['current_balance'] = $out['current_balance'];
|
||||
$data['new_message'] = $out['new_message'];
|
||||
$data['escrow_balance'] = $out['escrow_balance'];
|
||||
$data['description'] = $out["description"];
|
||||
|
||||
$this->load->model('account_model');
|
||||
$data['wallet'] = $this->account_model->getUserWallet($_SESSION['member_id'],$currency='NAIRA'); // $out['current_balance'];
|
||||
if (is_array($data['wallet']) && count($data['wallet'])>0 && array_key_exists('current_balance',$data['wallet'][0])) {
|
||||
$data['current_balance'] = $data['wallet'][0]['current_balance'];
|
||||
} else {
|
||||
$data['current_balance'] = 0;
|
||||
}
|
||||
|
||||
//$data = $_SESSION['secure_data'];
|
||||
$data['member_id'] = $_SESSION['member_id']; // = $ret->email;
|
||||
$_SESSION["active_offers_count"] = $out['active_offers_count'];
|
||||
@@ -58,7 +66,16 @@ class Users_Controller extends WRB_Controller {
|
||||
$this->load->model('account_model');
|
||||
$qr = $this->account_model->loadAccountData($member_id);
|
||||
// print_r($qr);
|
||||
$_SESSION['current_balance'] = $qr[0]['balance'];
|
||||
// $_SESSION['current_balance'] = $qr[0]['balance'];
|
||||
|
||||
$this->load->model('account_model');
|
||||
$data['wallet'] = $this->account_model->getUserWallet($member_id,$currency='NAIRA'); // $out['current_balance'];
|
||||
if (is_array($data['wallet']) && count($data['wallet'])>0 && array_key_exists('current_balance',$data['wallet'][0])) {
|
||||
$_SESSION['current_balance'] = $data['wallet'][0]['current_balance'];
|
||||
} else {
|
||||
$_SESSION['current_balance'] = 0;
|
||||
}
|
||||
|
||||
$_SESSION['active_task'] = $this->account_model->loadActiveTaskCount($member_id);
|
||||
$_SESSION['state'] = $qr[0]['state'];
|
||||
$_SESSION['city'] = $qr[0]['city'];
|
||||
@@ -70,6 +87,20 @@ class Users_Controller extends WRB_Controller {
|
||||
$in['action'] = WRENCHBOARD_SESSION_VERIFY;
|
||||
$in['sessionid'] = $_SESSION['session_id'];
|
||||
$in['member_id'] = $_SESSION['member_id'];
|
||||
|
||||
$_SESSION['wallet'] = false;
|
||||
$wallet_array = array(
|
||||
"ses66181+1@gmail.com",
|
||||
"ameye@chiefsoft.com",
|
||||
"obaxnoma@gmail.com",
|
||||
"ses66181@gmail.com",
|
||||
'cornelvaleriy@gmail.com',
|
||||
'lantagreece@gmail.com',
|
||||
'tokunbo.lawal1@gmail.com');
|
||||
if (in_array($_SESSION['username'], $wallet_array, true)) {
|
||||
$_SESSION['wallet'] = true;
|
||||
}
|
||||
|
||||
$this->load->model('backend_model');
|
||||
$out = array();
|
||||
$res = $this->backend_model->wrenchboard_api($in, $out);
|
||||
@@ -77,11 +108,20 @@ class Users_Controller extends WRB_Controller {
|
||||
redirect(home);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
protected function renderSecurePage($page_path_name, $data) {
|
||||
$this->load->view('site3/internal/template/view_securehead', $data);
|
||||
$this->load->view( $page_path_name, $data);
|
||||
$this->load->view('site3/internal/template/view_securefooter', $data);
|
||||
}
|
||||
|
||||
protected function RenderUserPage($page_name, $data) {
|
||||
return $this->renderSecurePage($page_name, $data);
|
||||
/*
|
||||
$this->load->view('users/view_header_user', $data);
|
||||
$this->load->view($page_name, $data);
|
||||
$this->load->view('users/view_footer_user', $data);
|
||||
*/
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -6,6 +6,18 @@ class Account_model extends CI_Model {
|
||||
|
||||
}
|
||||
|
||||
public function getUserWallet($member_id,$currency='') {
|
||||
$num = 0;
|
||||
//$mysql = "SELECT * FROM members_wallet WHERE member_id = $member_id AND currency='".$currency."' ";
|
||||
$and_part = '';
|
||||
if ($currency =''){
|
||||
$and_part = " AND w.currency='$currency' ";
|
||||
}
|
||||
$mysql = "SELECT w.amount,c.*,w.amount AS current_balance FROM members_wallet w LEFT JOIN currency c ON c.code=w.currency WHERE w.member_id = $member_id ".$and_part." ORDER BY c.lorder DESC";
|
||||
$query = $this->db->query($mysql);
|
||||
return $query->result_array();
|
||||
}
|
||||
|
||||
public function verify_link($data) {
|
||||
$q = $this
|
||||
->db
|
||||
|
||||
@@ -0,0 +1,54 @@
|
||||
<?php
|
||||
|
||||
class Autopref_model extends CI_Model
|
||||
{
|
||||
|
||||
public function afterLoginPage(){
|
||||
$retArr = [];
|
||||
$retArr['returnPage'] = 'logout';
|
||||
$retArr['loginsteps'] = '4';
|
||||
$returnPage = 'logout';
|
||||
if (isset($_SESSION) && isset($_SESSION['member_id']) && $_SESSION['member_id'] > 0){
|
||||
|
||||
$accountAgeNumber = $this->accountAge( $_SESSION['member_id'] );
|
||||
|
||||
// echo $accountAgeNumber." -----";
|
||||
//exit;
|
||||
$retArr['returnPage'] ='dash';
|
||||
if ($accountAgeNumber < 60 ){
|
||||
$retArr['returnPage'] ='dash/help';
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
||||
return $retArr;
|
||||
}
|
||||
|
||||
private function accountAge($member_id){
|
||||
|
||||
$accAge = 10000000;
|
||||
|
||||
$ageQ = "SELECT ((DATE_PART('day', now()::timestamp - added::timestamp) * 24 +
|
||||
DATE_PART('hour', now()::timestamp - added::timestamp)) * 60 +
|
||||
DATE_PART('minute', now()::timestamp - added::timestamp)) * 60 +
|
||||
DATE_PART('second', now()::timestamp - added::timestamp) AS accage FROM members WHERE id =".$member_id;
|
||||
|
||||
$query = $this->db->query($ageQ);
|
||||
$row = $query->row();
|
||||
|
||||
if (isset($row))
|
||||
{
|
||||
$accAge = $row->accage;
|
||||
}
|
||||
|
||||
return $accAge;
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
@@ -20,9 +20,21 @@ class Backend_model extends CI_Model {
|
||||
public function wrenchboard_api($in, $out = array()) {
|
||||
$this->wrenchboard_load();
|
||||
$ret = $this->wrenchboard->wrenchboard_api($in, $out);
|
||||
|
||||
// var_dump($ret);
|
||||
// echo "-----";
|
||||
// var_dump($out);
|
||||
// exit();
|
||||
return $ret;
|
||||
}
|
||||
|
||||
public function wrenchboard_api2($in, $out) {
|
||||
$this->wrenchboard_load();
|
||||
$ret = $this->wrenchboard->wrenchboard_api($in, $out);
|
||||
return $ret;
|
||||
}
|
||||
|
||||
|
||||
public function cfgReadChar($str) {
|
||||
$this->wrenchboard_load();
|
||||
$ret = $this->wrenchboard->cfgReadChar($str);
|
||||
|
||||
@@ -0,0 +1,89 @@
|
||||
<?php
|
||||
|
||||
class Cardpay_model extends CI_Model {
|
||||
|
||||
function __construct() {
|
||||
|
||||
}
|
||||
|
||||
public function verifyCardData($data){
|
||||
$error_status = false;
|
||||
$errorArray = array ();
|
||||
/*
|
||||
$cd['cardnumber'] = $this->input->post('cardnumber');
|
||||
$cd['exp_month'] = $this->input->post('exp_month');
|
||||
$cd['exp_year'] = $this->input->post('exp_year');
|
||||
$cd['cvc'] = $this->input->post('cvc');
|
||||
$cd['description']= $this->input->post('description');
|
||||
*/
|
||||
|
||||
if ( strlen( $data['cvc'] ) == 0 ){
|
||||
$error_status = true;
|
||||
$errorArray[]="Enter valid card CVV";
|
||||
}
|
||||
|
||||
if ( strlen( $data['cardnumber'] ) == 0 || $this->luhn_check( $data['cardnumber'] ) == false){
|
||||
$error_status = true;
|
||||
$errorArray[]="Enter valid card number";
|
||||
}
|
||||
|
||||
if ( strlen( $data['exp_year'] ) == 0 || $data['exp_year'] < date('Y') ){
|
||||
$error_status = true;
|
||||
$errorArray[]="Enter valid card expiration date";
|
||||
}
|
||||
else{
|
||||
|
||||
// let us test the month now
|
||||
}
|
||||
|
||||
if ( strlen( $data['description'] ) == 0 ){
|
||||
$error_status = true;
|
||||
$errorArray[]="Enter name on card";
|
||||
}
|
||||
|
||||
return [
|
||||
"error_status" => $error_status,
|
||||
"error_message" => $errorArray
|
||||
];
|
||||
}
|
||||
|
||||
public function verifyCCNumber($cardNumber) {
|
||||
|
||||
return $this->luhn_check($cardNumber);
|
||||
}
|
||||
|
||||
/* Luhn algorithm number checker - (c) 2005-2008 shaman - www.planzero.org *
|
||||
* This code has been released into the public domain, however please *
|
||||
* give credit to the original author where possible. */
|
||||
|
||||
private function luhn_check($number) {
|
||||
|
||||
// Strip any non-digits (useful for credit card numbers with spaces and hyphens)
|
||||
$number=preg_replace('/\D/', '', $number);
|
||||
|
||||
// Set the string length and parity
|
||||
$number_length=strlen($number);
|
||||
$parity=$number_length % 2;
|
||||
|
||||
// Loop through each digit and do the maths
|
||||
$total=0;
|
||||
for ($i=0; $i<$number_length; $i++) {
|
||||
$digit=$number[$i];
|
||||
// Multiply alternate digits by two
|
||||
if ($i % 2 == $parity) {
|
||||
$digit*=2;
|
||||
// If the sum is two digits, add them together (in effect)
|
||||
if ($digit > 9) {
|
||||
$digit-=9;
|
||||
}
|
||||
}
|
||||
// Total up the digits
|
||||
$total+=$digit;
|
||||
}
|
||||
|
||||
// If the total mod 10 equals 0, the number is valid
|
||||
return ($total % 10 == 0) ? TRUE : FALSE;
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
@@ -22,7 +22,7 @@ class Combo_model extends CI_Model {
|
||||
}
|
||||
|
||||
for ($ii = 2; $ii <= 5; $ii++) {
|
||||
$days_c = $ii*7;
|
||||
$days_c = $ii*7;
|
||||
$cmbstr .= "<option value='$days_c'>$ii Weeks</option>";
|
||||
}
|
||||
return $this->comboFrame($option_name, $cmbstr);
|
||||
@@ -105,6 +105,19 @@ $days_c = $ii*7;
|
||||
return $this->comboFrame($option_name, $option_value);
|
||||
}
|
||||
|
||||
public function getCountryJobCombo($option_name, $curVal) {
|
||||
$q = $this
|
||||
->db
|
||||
->where('status', 1)
|
||||
->where('jobs is NOT NULL', NULL, FALSE)
|
||||
->order_by('country', 'ASC')
|
||||
->get('country');
|
||||
|
||||
$option_value = $this->optionValueObject($q->result(), "code", "country", $curVal);
|
||||
|
||||
return $this->comboFrame($option_name, $option_value);
|
||||
}
|
||||
|
||||
public function getBankCombo($option_name, $curVal) {
|
||||
/*
|
||||
wrenchboard=> Select code,name from bank_entity_codes WHERE country ='NG' ORDER BY name ASC;
|
||||
@@ -148,12 +161,12 @@ $days_c = $ii*7;
|
||||
}
|
||||
|
||||
private function comboFrame($option_name, $option_value) {
|
||||
$addReaOnly = "";
|
||||
if ($this->readOnlyMode == true) {
|
||||
$addReaOnly = " disabled ";
|
||||
}
|
||||
|
||||
return $cmb = "<select data-placeholder='".$this->defaultComboMessage."' class='" . $this->currentStyle . "' name='$option_name' $addReaOnly >$option_value</select>";
|
||||
$addReaOnly = "";
|
||||
if ($this->readOnlyMode == true) {
|
||||
$addReaOnly = " disabled ";
|
||||
}
|
||||
$style_line = "form-select form-select-solid form-select-lg";
|
||||
return $cmb = "<select $style_line data-placeholder='".$this->defaultComboMessage."' class='" . $this->currentStyle . "' name='$option_name' $addReaOnly >$option_value</select>";
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -54,6 +54,7 @@ class Dash_model extends CI_Model {
|
||||
return $out;
|
||||
}
|
||||
|
||||
|
||||
public function getNewMessageCount($member_id) {
|
||||
$out = array();
|
||||
$out['new_message'] =0;
|
||||
|
||||
@@ -0,0 +1,24 @@
|
||||
<?php
|
||||
|
||||
class Report_model extends CI_Model {
|
||||
|
||||
function __construct() {
|
||||
|
||||
}
|
||||
|
||||
|
||||
public function getCardPurchase($limit){
|
||||
$data = array();
|
||||
$mysql = "SELECT added::date,"
|
||||
." (CASE WHEN code ='MNCCD' THEN 'New Card Payment' "
|
||||
. "WHEN code ='MRCCD' THEN 'Repeat Card Payment' "
|
||||
. "ELSE '' END) AS Description,amount*0.01 AS amount,fee*0.01 as fee,confirmation "
|
||||
. "FROM members_payments "
|
||||
. "WHERE member_id = " . $_SESSION['member_id'] . " AND status = 1 ORDER BY id DESC LIMIT ". $limit; // OFFSET " . $page;
|
||||
|
||||
$query = $this->db->query($mysql);
|
||||
$data['card_payment_data_result'] = $query->result();
|
||||
return $data;
|
||||
}
|
||||
|
||||
}
|
||||
-11
@@ -1,11 +0,0 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<title>403 Forbidden</title>
|
||||
</head>
|
||||
<body>
|
||||
|
||||
<p>Directory access is forbidden.</p>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
@@ -3,7 +3,7 @@
|
||||
<head>
|
||||
|
||||
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
|
||||
<meta name="author" content="SemiColonWeb" />
|
||||
<meta name="author" content="WrenchBoard" />
|
||||
|
||||
<meta name="description" content="wrenchboard.com is an online marketplace to make money from your skills, find, buy and sell professional services. Connect with freelancers to get work done faster. Trade your freelance services." />
|
||||
<meta name="title" content="WrenchBoard: Find a Freelancer | Sell Professional Services" />
|
||||
|
||||
@@ -0,0 +1,91 @@
|
||||
<!--begin::Col-->
|
||||
<div class="col-xl-3" style="height: 650px;">
|
||||
|
||||
<div class="card card-xl-stretch mb-xl-8" >
|
||||
<!--begin::Header-->
|
||||
<div class="card-header border-0 bg-info py-5">
|
||||
<h3 class="card-title fw-bolder text-white">Jobs</h3>
|
||||
</div>
|
||||
<!--end::Header-->
|
||||
<!--begin::Body-->
|
||||
<div class="card-body p-0">
|
||||
<!--begin::Chart-->
|
||||
<div class="mixed-widget-2-chart card-rounded-bottom bg-info" data-kt-color="info" style="height: 100px; min-height: 100px;">
|
||||
</div>
|
||||
<!--end::Chart-->
|
||||
<!--begin::Stats-->
|
||||
<div class="card-p mt-n20 position-relative">
|
||||
<!--begin::Row-->
|
||||
<div class="row g-0">
|
||||
<!--begin::Col-->
|
||||
<div class="col bg-light-warning px-6 py-8 rounded-2 me-7 mb-7">
|
||||
<!--begin::Svg Icon | path: icons/duotune/general/gen032.svg-->
|
||||
<span class="svg-icon svg-icon-3x svg-icon-warning d-block my-2">
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none">
|
||||
<rect x="8" y="9" width="3" height="10" rx="1.5" fill="currentColor"></rect>
|
||||
<rect opacity="0.5" x="13" y="5" width="3" height="14" rx="1.5" fill="currentColor"></rect>
|
||||
<rect x="18" y="11" width="3" height="8" rx="1.5" fill="currentColor"></rect>
|
||||
<rect x="3" y="13" width="3" height="6" rx="1.5" fill="currentColor"></rect>
|
||||
</svg>
|
||||
</span>
|
||||
<!--end::Svg Icon-->
|
||||
<a href="/jobs/manage" class="text-warning fw-bold fs-6">My Jobs</a>
|
||||
</div>
|
||||
<!--end::Col-->
|
||||
<!--begin::Col-->
|
||||
<div class="col bg-light-primary px-6 py-8 rounded-2 mb-7">
|
||||
<!--begin::Svg Icon | path: icons/duotune/finance/fin006.svg-->
|
||||
<span class="svg-icon svg-icon-3x svg-icon-primary d-block my-2">
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none">
|
||||
<path opacity="0.3" d="M20 15H4C2.9 15 2 14.1 2 13V7C2 6.4 2.4 6 3 6H21C21.6 6 22 6.4 22 7V13C22 14.1 21.1 15 20 15ZM13 12H11C10.5 12 10 12.4 10 13V16C10 16.5 10.4 17 11 17H13C13.6 17 14 16.6 14 16V13C14 12.4 13.6 12 13 12Z" fill="currentColor"></path>
|
||||
<path d="M14 6V5H10V6H8V5C8 3.9 8.9 3 10 3H14C15.1 3 16 3.9 16 5V6H14ZM20 15H14V16C14 16.6 13.5 17 13 17H11C10.5 17 10 16.6 10 16V15H4C3.6 15 3.3 14.9 3 14.7V18C3 19.1 3.9 20 5 20H19C20.1 20 21 19.1 21 18V14.7C20.7 14.9 20.4 15 20 15Z" fill="currentColor"></path>
|
||||
</svg>
|
||||
</span>
|
||||
<!--end::Svg Icon-->
|
||||
<a href="/jobs/startcreate" class="text-primary fw-bold fs-6">New Job</a>
|
||||
</div>
|
||||
<!--end::Col-->
|
||||
</div>
|
||||
<!--end::Row-->
|
||||
<!--begin::Row-->
|
||||
<div class="row g-0">
|
||||
<!--begin::Col-->
|
||||
<div class="col bg-light-danger px-6 py-8 rounded-2 me-7">
|
||||
<!--begin::Svg Icon | path: icons/duotune/abstract/abs027.svg-->
|
||||
<span class="svg-icon svg-icon-3x svg-icon-danger d-block my-2">
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none">
|
||||
<path opacity="0.3" d="M21.25 18.525L13.05 21.825C12.35 22.125 11.65 22.125 10.95 21.825L2.75 18.525C1.75 18.125 1.75 16.725 2.75 16.325L4.04999 15.825L10.25 18.325C10.85 18.525 11.45 18.625 12.05 18.625C12.65 18.625 13.25 18.525 13.85 18.325L20.05 15.825L21.35 16.325C22.35 16.725 22.35 18.125 21.25 18.525ZM13.05 16.425L21.25 13.125C22.25 12.725 22.25 11.325 21.25 10.925L13.05 7.62502C12.35 7.32502 11.65 7.32502 10.95 7.62502L2.75 10.925C1.75 11.325 1.75 12.725 2.75 13.125L10.95 16.425C11.65 16.725 12.45 16.725 13.05 16.425Z" fill="currentColor"></path>
|
||||
<path d="M11.05 11.025L2.84998 7.725C1.84998 7.325 1.84998 5.925 2.84998 5.525L11.05 2.225C11.75 1.925 12.45 1.925 13.15 2.225L21.35 5.525C22.35 5.925 22.35 7.325 21.35 7.725L13.05 11.025C12.45 11.325 11.65 11.325 11.05 11.025Z" fill="currentColor"></path>
|
||||
</svg>
|
||||
</span>
|
||||
<!--end::Svg Icon-->
|
||||
<a href="/proj/pastdue" class="text-danger fw-bold fs-6 mt-2">Past due</a>
|
||||
</div>
|
||||
<!--end::Col-->
|
||||
<!--begin::Col-->
|
||||
<div class="col bg-light-success px-6 py-8 rounded-2">
|
||||
<!--begin::Svg Icon | path: icons/duotune/communication/com010.svg-->
|
||||
<span class="svg-icon svg-icon-3x svg-icon-success d-block my-2">
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none">
|
||||
<path d="M6 8.725C6 8.125 6.4 7.725 7 7.725H14L18 11.725V12.925L22 9.725L12.6 2.225C12.2 1.925 11.7 1.925 11.4 2.225L2 9.725L6 12.925V8.725Z" fill="currentColor"></path>
|
||||
<path opacity="0.3" d="M22 9.72498V20.725C22 21.325 21.6 21.725 21 21.725H3C2.4 21.725 2 21.325 2 20.725V9.72498L11.4 17.225C11.8 17.525 12.3 17.525 12.6 17.225L22 9.72498ZM15 11.725H18L14 7.72498V10.725C14 11.325 14.4 11.725 15 11.725Z" fill="currentColor"></path>
|
||||
</svg>
|
||||
</span>
|
||||
<!--end::Svg Icon-->
|
||||
<a href="/proj/complete" class="text-success fw-bold fs-6 mt-2">History</a>
|
||||
</div>
|
||||
<!--end::Col-->
|
||||
</div>
|
||||
<!--end::Row-->
|
||||
</div>
|
||||
<!--end::Stats-->
|
||||
</div>
|
||||
<!--end::Body-->
|
||||
</div>
|
||||
<!--end::Mixed Widget 2-->
|
||||
|
||||
|
||||
|
||||
|
||||
</div>
|
||||
<!--end::Col-->
|
||||
@@ -12,28 +12,53 @@
|
||||
return false;
|
||||
}
|
||||
// -->
|
||||
</script>
|
||||
<div class="content-wrapper">
|
||||
<!-- Quick stats boxes -->
|
||||
<?php include('common/jobstrip.php');?>
|
||||
<!-- /quick stats boxes -->
|
||||
|
||||
<!-- Marketing campaigns -->
|
||||
<div class="panel panel-flat">
|
||||
<div class="panel-heading" style="height: 550px;">
|
||||
<div class="table-responsive">
|
||||
<h5 class="panel-title">Active Task</h5>
|
||||
<?php echo $job_table ?>
|
||||
</div>
|
||||
<div class="panel-heading">
|
||||
<?php echo $links; ?>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<!-- /marketing campaigns -->
|
||||
</script>
|
||||
|
||||
<!-- Quick stats boxes -->
|
||||
<?php include('common/jobstrip.php');?>
|
||||
<!-- /quick stats boxes -->
|
||||
|
||||
<!--begin::Row-->
|
||||
<div class="row g-5 g-xl-8">
|
||||
<div class="col-xl-12">
|
||||
<!--begin::Charts Widget 1-->
|
||||
<div class="card card-xl-stretch mb-5 mb-xl-8">
|
||||
<!--begin::Header-->
|
||||
<div class="card-header border-0 pt-5">
|
||||
<!--begin::Title-->
|
||||
<h3 class="card-title align-items-start flex-column">
|
||||
<span class="card-label fw-bolder fs-3 mb-1">Active Task</span>
|
||||
</h3>
|
||||
<!--end::Title-->
|
||||
|
||||
</div>
|
||||
<!--end::Header-->
|
||||
<!--begin::Body-->
|
||||
<div class="card-body">
|
||||
<div class="tab-content">
|
||||
<!--begin::Tap pane-->
|
||||
<div class="tab-pane fade show active" id="kt_table_widget_5_tab_1">
|
||||
<!--begin::Table container-->
|
||||
<div class="table-responsive">
|
||||
<!--begin::Table-->
|
||||
<?php echo $job_table ?>
|
||||
</div>
|
||||
<!--end::Table-->
|
||||
<?php echo $links; ?>
|
||||
</div>
|
||||
<!--end::Tap pane-->
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
</div>
|
||||
<!--end::Body-->
|
||||
</div>
|
||||
<!--end::Charts Widget 1-->
|
||||
</div>
|
||||
</div>
|
||||
<!-- /main content -->
|
||||
<!--end::Row-->
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -85,11 +110,12 @@ function showJobModal(contact_id) {
|
||||
var post_data = {
|
||||
'interest_id': id,
|
||||
};
|
||||
//alert(contact_id);
|
||||
|
||||
$.ajax({
|
||||
url: "/jobs/jobdetail_modal?contact_id="+contact_id
|
||||
}).done(function (data) {
|
||||
//alert(data);
|
||||
// alert(data);
|
||||
$('#modal-content').html(data);
|
||||
});
|
||||
}
|
||||
@@ -100,12 +126,10 @@ function showJobModal(contact_id) {
|
||||
|
||||
<!-- Basic modal -->
|
||||
<div id="modal_theme_primary" class="modal fade">
|
||||
<div class="modal-dialog">
|
||||
<div class="modal-dialog mw-650px">
|
||||
<div class="modal-content" id="modal-content">
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<!-- /basic modal -->
|
||||
|
||||
|
||||
<!-- /basic modal -->
|
||||
@@ -13,30 +13,52 @@
|
||||
}
|
||||
// -->
|
||||
</script>
|
||||
<div class="content-wrapper">
|
||||
<!-- Quick stats boxes -->
|
||||
<?php include('common/jobstrip.php'); ?>
|
||||
<!-- /quick stats boxes -->
|
||||
<?php include('common/jobstrip.php'); ?>
|
||||
|
||||
<!-- Marketing campaigns -->
|
||||
<div class="panel panel-flat">
|
||||
<div class="panel-heading">
|
||||
|
||||
<h5> Completed Job(s)/Task(s)</h5>
|
||||
|
||||
</div>
|
||||
|
||||
<div class="panel-heading" style="height: 550px;">
|
||||
<div class="table-responsive">
|
||||
<?php echo $job_table ?>
|
||||
|
||||
<!--begin::Row-->
|
||||
<div class="row g-5 g-xl-8">
|
||||
|
||||
<?php include('common/jobside.php'); ?>
|
||||
<!--begin::Col-->
|
||||
<div class="col-xl-9">
|
||||
<!--begin::Tables Widget 5-->
|
||||
<div class="card card-xl-stretch mb-5 mb-xl-8">
|
||||
<!--begin::Header-->
|
||||
<div class="card-header border-0 pt-5">
|
||||
<h3 class="card-title align-items-start flex-column">
|
||||
Completed Job(s)/Task(s)
|
||||
</h3>
|
||||
<div class="card-toolbar">
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<div class="panel-heading">
|
||||
<?php echo $links; ?>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<!-- /marketing campaigns -->
|
||||
</div>
|
||||
<!-- /main content -->
|
||||
<!--end::Header-->
|
||||
|
||||
|
||||
<!--begin::Body-->
|
||||
<div class="card-body py-3">
|
||||
<div class="tab-content">
|
||||
<!--begin::Tap pane-->
|
||||
<div class="tab-pane fade show active" id="kt_table_widget_5_tab_1">
|
||||
<!--begin::Table container-->
|
||||
<?php echo $job_table ?>
|
||||
<!--end::Table-->
|
||||
</div>
|
||||
<!--end::Tap pane-->
|
||||
<?php echo $links; ?>
|
||||
</div>
|
||||
</div>
|
||||
<!--end::Body-->
|
||||
</div>
|
||||
<!--end::Tables Widget 5-->
|
||||
</div>
|
||||
<!--end::Col-->
|
||||
|
||||
</div>
|
||||
<!--end::Row-->
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -1,98 +1,181 @@
|
||||
<!-- Main content -->
|
||||
<div class="content-wrapper">
|
||||
<?php include('common/jobstrip.php'); ?>
|
||||
<?php include('common/jobstrip.php'); ?>
|
||||
|
||||
<!-- Marketing campaigns -->
|
||||
<div class="panel panel-flat">
|
||||
<div class="panel-heading" style="background-color: lightgray; padding-top: 1px; padding-bottom: 3px; padding-left: 10px;">
|
||||
<h5>Create New Job</h5>
|
||||
</div>
|
||||
<div class="panel-heading">
|
||||
<form class="form-horizontal" action="/jobs/create" method='POST'>
|
||||
<!--begin::Row-->
|
||||
<div class="row g-5 g-xl-8">
|
||||
|
||||
<!--begin::Col-->
|
||||
<div class="col-xl-9">
|
||||
<!--begin::Tables Widget 5-->
|
||||
<div class="card card-xl-stretch mb-5 mb-xl-8">
|
||||
<!--begin::Header-->
|
||||
<div class="card-header border-0 pt-5">
|
||||
<h3 class="card-title align-items-start flex-column">
|
||||
Create New Job
|
||||
</h3>
|
||||
<div class="card-toolbar">
|
||||
|
||||
<div class="panel-body">
|
||||
<div class="row">
|
||||
|
||||
<div class="col-md-10 col-md-offset-1">
|
||||
<div class="form-group">
|
||||
<label class="col-lg-2 control-label"> Title [75] :</label>
|
||||
<div class="col-lg-10">
|
||||
<input type="text" class="form-control" name='title' placeholder="Proj title" maxlength="80">
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="col-lg-2 control-label">Description [250]:</label>
|
||||
<div class="col-lg-10">
|
||||
<textarea rows="2" cols="5" class="form-control" name='description' placeholder="Job Description"></textarea>
|
||||
</div>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="col-lg-2 control-label">Job Detail:</label>
|
||||
<div class="col-lg-10">
|
||||
<textarea rows="3" cols="5" class="textarea wysihtml5 wysihtml5-min form-control" style="height:180px;" name='job_detail' placeholder="Job Detail"></textarea>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
<div class="form-group">
|
||||
<label class="col-lg-2 control-label">Timeline:</label>
|
||||
<div class="col-lg-10">
|
||||
<select class="form-control" name='timeline'>
|
||||
<option value="opt1">Select Market Timeline for this job</option>
|
||||
<option value="2">2 days</option>
|
||||
<option value="3">3 days</option>
|
||||
<option value="4">4 days</option>
|
||||
<option value="5">5 days</option>
|
||||
<option value="6">6 days</option>
|
||||
<option value="7">1 week</option>
|
||||
<option value="14">2 weeks</option>
|
||||
<option value="21">3 weeks</option>
|
||||
<option value="30">1 Month</option>
|
||||
<option value="60">2 Months</option>
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="form-group">
|
||||
<label class="col-lg-2 control-label">Price:</label>
|
||||
<div class="col-lg-10">
|
||||
<select class="form-control" name='price'>
|
||||
<option value="opt1">Select Price for this job</option>
|
||||
<?php
|
||||
for ($i = 2000; $i <= 10000; $i = $i + 1000) {
|
||||
echo "<option value='$i'>$i Naira</option>";
|
||||
}
|
||||
?>
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
<div class="text-right">
|
||||
<button type="submit" class="btn btn-primary btn-xs">Add Job <i class="icon-arrow-right14 position-right"></i></button>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col-sm-4"><a href="/jobs/manage/">Return to job my list</a></div>
|
||||
<div class="col-sm-8">
|
||||
<div class="text-center">
|
||||
<?php echo $job_message; ?>
|
||||
</div></div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<!--end::Header-->
|
||||
<!--begin::Body-->
|
||||
<div class="card-body py-3">
|
||||
<div class="tab-content">
|
||||
<!--begin::Tap pane-->
|
||||
<div class="tab-pane fade show active" id="kt_table_widget_5_tab_1">
|
||||
<!--begin::Table container-->
|
||||
<form action="" class="form mb-15 fv-plugins-bootstrap5 fv-plugins-framework" action="/jobs/create" method='POST' id="kt_contact_form">
|
||||
<!--begin::Input group-->
|
||||
<div class="row mb-5">
|
||||
<!--begin::Col-->
|
||||
<div class="col-md-6 fv-row fv-plugins-icon-container">
|
||||
<!--begin::Label-->
|
||||
<label class="fs-5 fw-bold mb-2">Country</label>
|
||||
<!--end::Label-->
|
||||
<!--begin::Input-->
|
||||
<?=$country_job?>
|
||||
<!--end::Input-->
|
||||
<div class="fv-plugins-message-container invalid-feedback"></div></div>
|
||||
<!--end::Col-->
|
||||
<!--begin::Col-->
|
||||
<div class="col-md-6 fv-row fv-plugins-icon-container">
|
||||
<!--end::Label-->
|
||||
<label class="fs-5 fw-bold mb-2">Price</label>
|
||||
<!--end::Label-->
|
||||
<!--end::Input-->
|
||||
<select class="form-select form-select-solid form-select-lg" name='price'>
|
||||
<option value="opt1">Select Price for this job</option>
|
||||
<?php
|
||||
for ($i = 2000; $i <= 10000; $i = $i + 1000) {
|
||||
echo "<option value='$i'>$i Naira</option>";
|
||||
}
|
||||
?>
|
||||
</select>
|
||||
<!--end::Input-->
|
||||
<!--end::Col-->
|
||||
</div>
|
||||
<!--end::Input group-->
|
||||
</div>
|
||||
<!--begin::Input group-->
|
||||
<div class="d-flex flex-column mb-5 fv-row">
|
||||
<!--begin::Label-->
|
||||
<label class="fs-5 fw-bold mb-2">Title</label>
|
||||
<!--end::Label-->
|
||||
<!--begin::Input-->
|
||||
<input class="form-control form-control-solid" placeholder="" name="title" maxlength="80">
|
||||
<!--end::Input-->
|
||||
</div>
|
||||
<!--end::Input group-->
|
||||
<!--begin::Input group-->
|
||||
<div class="d-flex flex-column mb-5 fv-row">
|
||||
<!--begin::Label-->
|
||||
<label class="fs-5 fw-bold mb-2">Description [250]:</label>
|
||||
<!--end::Label-->
|
||||
<!--begin::Input-->
|
||||
<input class="form-control form-control-solid" placeholder="" name="description">
|
||||
<!--end::Input-->
|
||||
</div>
|
||||
<!--end::Input group-->
|
||||
<!--begin::Input group-->
|
||||
<div class="d-flex flex-column mb-10 fv-row fv-plugins-icon-container">
|
||||
<label class="fs-6 fw-bold mb-2">Job Delivery Details:</label>
|
||||
<textarea class="form-control form-control-solid" rows="6" name="message" placeholder=""></textarea>
|
||||
<div class="fv-plugins-message-container invalid-feedback"></div></div>
|
||||
<!--end::Input group-->
|
||||
|
||||
</form>
|
||||
<!--begin::Input group-->
|
||||
<div class="d-flex flex-column mb-5 fv-row">
|
||||
<!--begin::Label-->
|
||||
<label class="fs-5 fw-bold mb-2">Timeline</label>
|
||||
<!--end::Label-->
|
||||
<!--begin::Input-->
|
||||
<select class="form-select form-select-solid form-select-lg" name='timeline'>
|
||||
<option value="opt1">Select Market Timeline for this job</option>
|
||||
<option value="2">2 days</option>
|
||||
<option value="3">3 days</option>
|
||||
<option value="4">4 days</option>
|
||||
<option value="5">5 days</option>
|
||||
<option value="6">6 days</option>
|
||||
<option value="7">1 week</option>
|
||||
<option value="14">2 weeks</option>
|
||||
<option value="21">3 weeks</option>
|
||||
<option value="30">1 Month</option>
|
||||
<option value="60">2 Months</option>
|
||||
</select>
|
||||
<!--end::Input-->
|
||||
</div>
|
||||
<!--end::Input group-->
|
||||
|
||||
|
||||
|
||||
<div class="d-flex flex-column mb-5 fv-row">
|
||||
<div class="col-md-6 fv-row fv-plugins-icon-container">
|
||||
<?php echo $job_message; ?>
|
||||
</div>
|
||||
<div class="col-md-3 fv-row fv-plugins-icon-container">
|
||||
<!--begin::Submit-->
|
||||
<button type="submit" class="btn btn-primary" >
|
||||
<!--begin::Indicator-->
|
||||
<span class="indicator-label">Add Job</span>
|
||||
<span class="indicator-progress">Please wait...
|
||||
<span class="spinner-border spinner-border-sm align-middle ms-2"></span></span>
|
||||
<!--end::Indicator-->
|
||||
</button>
|
||||
<!--end::Submit-->
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
</form>
|
||||
<!--end::Table-->
|
||||
</div>
|
||||
<!--end::Tap pane-->
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<!--end::Body-->
|
||||
</div>
|
||||
<!--end::Tables Widget 5-->
|
||||
</div>
|
||||
<!-- /marketing campaigns -->
|
||||
</div>
|
||||
<!-- /main content -->
|
||||
<!--end::Col-->
|
||||
<!--begin::Col-->
|
||||
<div class="col-xl-3">
|
||||
<!--begin::Tables Widget 5-->
|
||||
<div class="card card-xl-stretch mb-5 mb-xl-8">
|
||||
<!--begin::Header-->
|
||||
<div class="card-header border-0 pt-5">
|
||||
<h3 class="card-title align-items-start flex-column">
|
||||
.
|
||||
</h3>
|
||||
<div class="card-toolbar">
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<!--end::Header-->
|
||||
<!--begin::Body-->
|
||||
<div class="card-body py-3">
|
||||
<div class="tab-content">
|
||||
<!--begin::Tap pane-->
|
||||
<div class="tab-pane fade show active" id="kt_table_widget_5_tab_1">
|
||||
<!--begin::Table container-->
|
||||
<div class="table-responsive">
|
||||
<!--begin::Table-->
|
||||
|
||||
..
|
||||
</div>
|
||||
<!--end::Table-->
|
||||
</div>
|
||||
<!--end::Tap pane-->
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<!--end::Body-->
|
||||
</div>
|
||||
<!--end::Tables Widget 5-->
|
||||
</div>
|
||||
<!--end::Col-->
|
||||
</div>
|
||||
<!--end::Row-->
|
||||
|
||||
|
||||
|
||||
@@ -1,28 +1,92 @@
|
||||
<!-- Main content -->
|
||||
<div class="content-wrapper">
|
||||
<?php include('common/jobstrip.php'); ?>
|
||||
<?php include('common/jobstrip.php'); ?>
|
||||
<!--begin::Row-->
|
||||
<div class="row g-5 g-xl-8">
|
||||
<div class="col-xl-12">
|
||||
<!--begin::Charts Widget 1-->
|
||||
<div class="card card-xl-stretch mb-5 mb-xl-8">
|
||||
<!--begin::Header-->
|
||||
<div class="card-header border-0 pt-5">
|
||||
<!--begin::Title-->
|
||||
<h3 class="card-title align-items-start flex-column">
|
||||
<span class="card-label fw-bolder fs-3 mb-1">Additional Terms for Jobs Posting.</span>
|
||||
</h3>
|
||||
<!--end::Title-->
|
||||
|
||||
</div>
|
||||
<!--end::Header-->
|
||||
<!--begin::Body-->
|
||||
<div class="card-body">
|
||||
<div class="tab-content">
|
||||
<!--begin::Tap pane-->
|
||||
<div class="tab-pane fade show active" id="kt_table_widget_5_tab_1">
|
||||
<!--begin::Table container-->
|
||||
<h4>All terms of sale must follow WrenchBoard policies for buying and selling. Setting and meeting expectations in a listing's terms of sale ensure a smooth transaction and buyer satisfaction while helping WrenchBoard remain a reputable marketplace.</h4>
|
||||
<br>
|
||||
<h3 class="text-dark mb-5 fw-boldest">What is the policy? </h3>
|
||||
|
||||
<h4> Task or Job owners should provide clear and accurate delivery terms and conditions required to meet the expectations they have set in their listings. These should include:</h4>
|
||||
|
||||
<ul class="list-group">
|
||||
<li class="list-group-item">Delivery mode, timelines, and reviews</li>
|
||||
<li class="list-group-item">The forms of payment available for the task </li>
|
||||
<li class="list-group-item"> A returns policy:
|
||||
<ul class="list-group">
|
||||
<li class="list-group-item">Clearly stated criteria under which cancellation will be accepted.</li>
|
||||
<li class="list-group-item">Clearly stated the time period in which the buyer must notify the seller about the delivery delay.</li>
|
||||
<li class="list-group-item">How refunds/returns/cancellations will be issued</li>
|
||||
</ul>
|
||||
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
<br>
|
||||
<br>
|
||||
|
||||
|
||||
|
||||
|
||||
<br>
|
||||
<h4>Activity that doesn't follow WrenchBoard policy could result in a range of actions, including for example: administratively ending or canceling listings, hiding or demoting all listings from search results, lowering rating, buying or selling restrictions, and account suspension.
|
||||
<br>
|
||||
All fees paid or payable concerning listings or accounts on which we take any action will not be refunded or otherwise credited to your account.</h4>
|
||||
<br>
|
||||
<h3 class="text-dark mb-5 fw-boldest">Why does WrencBoard have this policy?</h3>
|
||||
<h4>Buyers and sellers enter a contract when they complete transactions, so it's necessary to have precise details on what the transaction entails to guarantee satisfaction. This policy also helps sellers meet our performance standards.</h4>
|
||||
|
||||
|
||||
<!-- Marketing campaigns -->
|
||||
<div class="panel panel-flat">
|
||||
<div class="panel-heading">
|
||||
<form class="form-horizontal" action="/jobs/jobagree" method='POST'>
|
||||
<input type='hidden' name='agree_jobs' value='agree_jobs' >
|
||||
<div class="panel-body">
|
||||
<div class="row">
|
||||
<?php echo $txt_detail; ?>
|
||||
<div class="col-md-10 col-md-offset-1">
|
||||
<div class="text-right">
|
||||
<button type="submit" class="btn btn-primary">Agree to Terms <i class="icon-arrow-right14 position-right"></i></button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<!--end::Tap pane-->
|
||||
|
||||
<div class="tab-pane fade show active" id="kt_table_widget_5_tab_1" style=" padding-top: 35px; text-align: right">
|
||||
<form action="/jobs/jobagree" onclick="start_agree();"> <a class="btn btn-sm btn-primary">Agree to Terms <i class="icon-arrow-right14 position-right"></i></a> </form>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
</form>
|
||||
|
||||
</div>
|
||||
<!--end::Body-->
|
||||
</div>
|
||||
<!--end::Charts Widget 1-->
|
||||
</div>
|
||||
<!-- /marketing campaigns -->
|
||||
</div>
|
||||
<!-- /main content -->
|
||||
<!--end::Row-->
|
||||
|
||||
|
||||
<script type="text/javascript">
|
||||
<!--
|
||||
|
||||
function start_agree() {
|
||||
alert(100);
|
||||
$.ajax({
|
||||
url: "/jobs/agreejobterms?interest_id=0"
|
||||
}).done(function (data) {
|
||||
$('#modal-content').html(data);
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
// -->
|
||||
</script>
|
||||
@@ -21,50 +21,70 @@
|
||||
}
|
||||
// -->
|
||||
</script>
|
||||
<div class="content-wrapper">
|
||||
<!-- Quick stats boxes -->
|
||||
<?php include('common/jobstrip.php'); ?>
|
||||
<!-- /quick stats boxes -->
|
||||
<?php include('common/jobstrip.php'); ?>
|
||||
|
||||
<!-- Marketing campaigns -->
|
||||
<div class="panel panel-flat">
|
||||
<div class="panel-heading">
|
||||
|
||||
<!--div class="btn-group btn-group-justified">
|
||||
<a href="#" class="btn bg-slate-700">Left</a>
|
||||
<a href="#" class="btn bg-slate-700">Middle</a>
|
||||
<a href="#" class="btn bg-slate-700">Right</a>
|
||||
</div -->
|
||||
<!--begin::Row-->
|
||||
<div class="row g-5 g-xl-8">
|
||||
|
||||
<?php include('common/jobside.php'); ?>
|
||||
<!--begin::Col-->
|
||||
<div class="col-xl-9">
|
||||
<!--begin::Tables Widget 5-->
|
||||
<div class="card card-xl-stretch mb-5 mb-xl-8">
|
||||
<!--begin::Header-->
|
||||
<div class="card-header border-0 pt-5">
|
||||
<h3 class="card-title align-items-start flex-column">
|
||||
Manage Jobs
|
||||
</h3>
|
||||
<div class="card-toolbar">
|
||||
|
||||
|
||||
<div class="row">
|
||||
<div class="col-md-3">
|
||||
<p><a class="btn btn-secondary btn-xs btn-block" href="/jobs/manage">My Job(s)</a></p>
|
||||
</div>
|
||||
|
||||
<div class="col-md-3">
|
||||
<p><a class="btn btn-success btn-xs btn-block" href="/jobs/create">Create Job</a></p>
|
||||
</div>
|
||||
<div class="col-md-3">
|
||||
<p><a class="btn btn-info btn-xs btn-block" href="/proj/complete">Completed Jobs(s)</a></p>
|
||||
</div>
|
||||
|
||||
<div class="col-md-3">
|
||||
<p><a class="btn btn-warning btn-xs btn-block" href="/proj/pastdue">Past Due</a></p>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
<div class="table-responsive" style='height: 550px;'>
|
||||
<?php echo $job_table ?>
|
||||
<div class="panel-heading">
|
||||
<!--end::Header-->
|
||||
|
||||
<!--begin::Header-->
|
||||
|
||||
<div class="card-header border-0 pt-5">
|
||||
<h3 class="card-title align-items-start flex-column">
|
||||
<div class="row">
|
||||
<a class="btn btn-secondary btn-xs btn-block" href="/jobs/manage">My Job(s)</a>
|
||||
</div>
|
||||
</h3>
|
||||
<div class="card-toolbar">
|
||||
<a class="btn btn-success btn-xs btn-block" href="/jobs/startcreate">Create New Job</a>
|
||||
<a class="btn btn-info btn-xs btn-block" href="/proj/complete">Completed</a>
|
||||
<a class="btn btn-warning btn-xs btn-block" href="/proj/pastdue">Past Due</a>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<!--end::Header-->
|
||||
|
||||
|
||||
<!--begin::Body-->
|
||||
<div class="card-body py-3">
|
||||
<div class="tab-content">
|
||||
<!--begin::Tap pane-->
|
||||
<div class="tab-pane fade show active" id="kt_table_widget_5_tab_1">
|
||||
<!--begin::Table container-->
|
||||
<?php echo $job_table ?>
|
||||
<!--end::Table-->
|
||||
</div>
|
||||
<!--end::Tap pane-->
|
||||
<?php echo $links; ?>
|
||||
</div>
|
||||
</div>
|
||||
<!--end::Body-->
|
||||
</div>
|
||||
<!--end::Tables Widget 5-->
|
||||
</div>
|
||||
<!-- /marketing campaigns -->
|
||||
<!--end::Col-->
|
||||
|
||||
</div>
|
||||
<!-- /main content -->
|
||||
<!--end::Row-->
|
||||
|
||||
|
||||
|
||||
|
||||
<script type="text/javascript">
|
||||
<!--
|
||||
|
||||
@@ -27,78 +27,121 @@
|
||||
// -->
|
||||
</script>
|
||||
<!-- Main content -->
|
||||
<?php include('common/jobstrip.php'); ?>
|
||||
|
||||
|
||||
<!--begin::Row-->
|
||||
<div class="row g-5 g-xl-8">
|
||||
|
||||
<?php include('common/jobside.php'); ?>
|
||||
<!--begin::Col-->
|
||||
<div class="col-xl-9">
|
||||
<!--begin::Tables Widget 5-->
|
||||
<div class="card card-xl-stretch mb-5 mb-xl-8">
|
||||
<!--begin::Header-->
|
||||
<div class="card-header border-0 pt-5">
|
||||
<h3 class="card-title align-items-start flex-column">
|
||||
<a href="#" onclick="showOfferModal('<?= $offer_code; ?>');" >Interest in <?php echo $offer_code; ?></a>
|
||||
</h3>
|
||||
<div class="card-toolbar">
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<!--end::Header-->
|
||||
|
||||
|
||||
<!--begin::Body-->
|
||||
<div class="card-body py-3">
|
||||
<div class="tab-content">
|
||||
<!--begin::Tap pane-->
|
||||
<div class="tab-pane fade show active" id="kt_table_widget_5_tab_1">
|
||||
<!-- /main charts -->
|
||||
<div class="row">
|
||||
<div class="col-md-8">
|
||||
<div class="panel panel-flat" >
|
||||
<div class="panel-heading">
|
||||
<h6 class="panel-title"><b><?php echo $dash_title; ?> [<a href="#" onclick="showOfferModal('<?= $offer_code; ?>');" ><?php echo $offer_code; ?></a>]</b>-<?php echo $title; ?></h6>
|
||||
</div>
|
||||
<table class='table table-striped table-hover table-bordered'>
|
||||
<tbody>
|
||||
<tr style="background-color: #CEECF5;">
|
||||
<td>
|
||||
<b>Job Added : </b><?php echo $added; ?><br>
|
||||
<a href='#' onclick="showModal(<?php echo $interest_id; ?>);"><?php echo $client; ?><br>
|
||||
<b>Member Since : </b><?php echo $client_added; ?></a><br>
|
||||
|
||||
</td>
|
||||
<td style="width:190px;">
|
||||
<b>Jobs Completed : </b><?php echo $total_jobs_completed; ?><br>
|
||||
<b>Jobs Active : </b><?php echo $total_jobs_active; ?><br>
|
||||
<b>Jobs Uncompleted : </b><?php echo $total_jobs_uncompleted; ?><br>
|
||||
<b>Pending Offers : </b><?php echo $total_pending_offers; ?><br>
|
||||
% Completion
|
||||
</td>
|
||||
<td style="width:90px;">
|
||||
<table class='table table-condensed'>
|
||||
<tbody>
|
||||
<tr><td style='width: 33%;'><div id="cancdiv"><input type=submit id="submit_canc" name="rmview" onclick="return cancelInterest(<?php echo $interest_id; ?>);" class="btn btn-danger btn-xs btn-block" value="Cancel Job"></div></td> </tr>
|
||||
<tr><td><div id="rejtdiv"><input type=submit id="submit_rejt" name="rmview" onclick="return rejectInterest(<?php echo $interest_id; ?>);" class="btn btn-warning btn-xs btn-block" value="Reject"></div></td> </tr>
|
||||
<tr><td style='width: 33%;'><div id="accdiv"><input type=submit id="submit_acc" name="mview" onclick="return acceptInterest(<?php echo $interest_id; ?>);" class="btn btn-info btn-xs btn-block" value="Accept"></div></td> </tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</td> </tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
|
||||
<div class="panel panel-flat" >
|
||||
<div class="panel-heading">
|
||||
<h6 class="panel-title"><b>Others Interested in this Task</b></h6>
|
||||
</div>
|
||||
<?php echo $job_others_interest_table; ?>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
<div class="col-md-4">
|
||||
<div class="thumbnail" style="background-color: #CEECF5;">
|
||||
Message to <b><?php echo $client; ?></b><hr size='1'>
|
||||
<form name='offer_message' >
|
||||
<div class="thumb">
|
||||
<textarea rows="3" name='offermessage' class="textarea form-control" placeholder="Enter message..."></textarea>
|
||||
</div>
|
||||
<div class="text-right">
|
||||
<button type="submit" id="submit_yourmessage_<?= $offer_code; ?>" onclick="return OMessage('<?= $offer_code; ?>',<?= $interest_id; ?>);" name='btn_submit' class="btn btn-primary btn-xs btn-block" onclick="SendMessage();return false;">Send</button>
|
||||
</div>
|
||||
</form>
|
||||
<div class="caption">
|
||||
<div id='msg_result_<?= $offer_code; ?>'>
|
||||
<? echo $message_list; ?>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
<!--end::Tap pane-->
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<!--end::Body-->
|
||||
</div>
|
||||
<!--end::Tables Widget 5-->
|
||||
</div>
|
||||
<!--end::Col-->
|
||||
|
||||
</div>
|
||||
<!--end::Row-->
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<div class="content-wrapper">
|
||||
<?php include('common/jobstrip.php'); ?>
|
||||
|
||||
<!-- Main charts -->
|
||||
<div class="row">
|
||||
<div class="col-lg-12">
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<!-- /main charts -->
|
||||
<div class="row">
|
||||
<div class="col-md-9">
|
||||
<div class="panel panel-flat" >
|
||||
<div class="panel-heading">
|
||||
<h6 class="panel-title"><b><?php echo $dash_title; ?> [<a href="#" onclick="showOfferModal('<?= $offer_code; ?>');" ><?php echo $offer_code; ?></a>]</b>-<?php echo $title; ?></h6>
|
||||
</div>
|
||||
<table class='table table-striped table-hover table-bordered'>
|
||||
<tbody>
|
||||
<tr style="background-color: #CEECF5;">
|
||||
<td>
|
||||
<b>Job Added : </b><?php echo $added; ?><br>
|
||||
<a href='#' onclick="showModal(<?php echo $interest_id; ?>);"><?php echo $client; ?><br>
|
||||
<b>Member Since : </b><?php echo $client_added; ?></a><br>
|
||||
|
||||
</td>
|
||||
<td style="width:190px;">
|
||||
<b>Jobs Completed : </b><?php echo $total_jobs_completed; ?><br>
|
||||
<b>Jobs Active : </b><?php echo $total_jobs_active; ?><br>
|
||||
<b>Jobs Uncompleted : </b><?php echo $total_jobs_uncompleted; ?><br>
|
||||
<b>Pending Offers : </b><?php echo $total_pending_offers; ?><br>
|
||||
% Completion
|
||||
</td>
|
||||
<td style="width:90px;">
|
||||
<table class='table table-condensed'>
|
||||
<tbody>
|
||||
<tr><td style='width: 33%;'><div id="cancdiv"><input type=submit id="submit_canc" name="rmview" onclick="return cancelInterest(<?php echo $interest_id; ?>);" class="btn btn-danger btn-xs btn-block" value="Cancel Job"></div></td> </tr>
|
||||
<tr><td><div id="rejtdiv"><input type=submit id="submit_rejt" name="rmview" onclick="return rejectInterest(<?php echo $interest_id; ?>);" class="btn btn-warning btn-xs btn-block" value="Reject"></div></td> </tr>
|
||||
<tr><td style='width: 33%;'><div id="accdiv"><input type=submit id="submit_acc" name="mview" onclick="return acceptInterest(<?php echo $interest_id; ?>);" class="btn btn-info btn-xs btn-block" value="Accept"></div></td> </tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</td> </tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
|
||||
<div class="panel panel-flat" >
|
||||
<div class="panel-heading">
|
||||
<h6 class="panel-title"><b>Others Interested in this Task</b></h6>
|
||||
</div>
|
||||
<?php echo $job_others_interest_table; ?>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
<div class="col-md-3">
|
||||
<div class="thumbnail" style="background-color: #CEECF5;">
|
||||
Message to <b><?php echo $client; ?></b><hr size='1'>
|
||||
<form name='offer_message' >
|
||||
<div class="thumb">
|
||||
<textarea rows="3" name='offermessage' class="textarea form-control" placeholder="Enter message..."></textarea>
|
||||
</div>
|
||||
<div class="text-right">
|
||||
<button type="submit" id="submit_yourmessage_<?= $offer_code; ?>" onclick="return OMessage('<?= $offer_code; ?>',<?= $interest_id; ?>);" name='btn_submit' class="btn btn-primary btn-xs" onclick="SendMessage();return false;">Send</button>
|
||||
</div>
|
||||
</form>
|
||||
<div class="caption">
|
||||
<div id='msg_result_<?= $offer_code; ?>'>
|
||||
<? echo $message_list; ?>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<script type="text/javascript">
|
||||
<!--
|
||||
|
||||
@@ -11,37 +11,156 @@
|
||||
return false;
|
||||
}
|
||||
// -->
|
||||
</script>
|
||||
</script>
|
||||
|
||||
<!-- Main content -->
|
||||
<div class="content-wrapper">
|
||||
<?php include('common/jobstrip.php');?>
|
||||
<!-- Main charts -->
|
||||
<!--div class="row">
|
||||
<div class="col-lg-12">
|
||||
<div class="panel panel-flat" style="height: 45px; background-color: #f1fdd5;">
|
||||
Menu Here
|
||||
</div>
|
||||
</div>
|
||||
</div -->
|
||||
<!-- /main charts -->
|
||||
<div class="row">
|
||||
<div class="col-md-12">
|
||||
<div class="panel panel-flat" >
|
||||
<?php echo $market_table; ?>
|
||||
</div>
|
||||
</div>
|
||||
<!--begin::Toolbar-->
|
||||
<div class="d-flex flex-wrap flex-stack my-5">
|
||||
<!--begin::Heading-->
|
||||
<h2 class="fs-2 fw-bold my-2">Available Jobs
|
||||
|
||||
<!--end::Heading-->
|
||||
<!--begin::Controls-->
|
||||
<div class="d-flex flex-wrap my-1">
|
||||
<!--begin::Select wrapper-->
|
||||
<!-- div class="m-0">
|
||||
<select name="status" data-control="select2" data-hide-search="true" class="form-select form-select-sm bg-body border-body fw-bolder w-125px">
|
||||
<option value="Active" selected="selected">Active</option>
|
||||
<option value="Approved">In Progress</option>
|
||||
<option value="Declined">To Do</option>
|
||||
<option value="In Progress">Completed</option>
|
||||
</select>
|
||||
</div -->
|
||||
<!--end::Select wrapper-->
|
||||
</div>
|
||||
<!--end::Controls-->
|
||||
</div>
|
||||
<!--end::Toolbar-->
|
||||
<!--begin::Row-->
|
||||
<div class="row g-6 g-xl-9">
|
||||
<?php
|
||||
// $market_table_result
|
||||
//onclick="showJobModal('2R05W439BR');"
|
||||
//onclick="return EDetail('$row->offer_code')
|
||||
foreach ($market_table_result as $row)
|
||||
{
|
||||
?>
|
||||
<!--begin::Col-->
|
||||
<div class="col-md-6 col-xl-4" >
|
||||
<!--begin::Card-->
|
||||
<a href="#" onclick="return showMarketJobModal('<?=$row->offer_code?>');" class="card border-hover-primary">
|
||||
<!--begin:: Card body-->
|
||||
<div class="card-body p-9" style="height: 300px">
|
||||
<!--begin::Name-->
|
||||
<div class="fs-3 fw-bolder text-dark"><?=$row->title?></div>
|
||||
<!--end::Name-->
|
||||
<!--begin::Description-->
|
||||
<p class="text-gray-400 fw-bold fs-5 mt-1 mb-7"><?=$row->description?></p>
|
||||
<!--end::Description-->
|
||||
<!--begin::Info-->
|
||||
<div class="d-flex flex-wrap mb-5">
|
||||
<!--begin::Due-->
|
||||
<div class="border border-gray-300 border-dashed rounded min-w-125px py-3 px-4 me-7 mb-3">
|
||||
<div class="fs-6 text-gray-800 fw-bolder"><?=$row->timeline_days?> day(s)</div>
|
||||
<div class="fw-bold text-gray-400">Timeline</div>
|
||||
</div>
|
||||
<!--end::Due-->
|
||||
<!--begin::Budget-->
|
||||
<div class="border border-gray-300 border-dashed rounded min-w-125px py-3 px-4 mb-3">
|
||||
<div class="fs-6 text-gray-800 fw-bolder">N <? echo money_format('%.2n', $row->price * 0.01); ?></div>
|
||||
<div class="fw-bold text-gray-400">Budget</div>
|
||||
</div>
|
||||
<!--end::Budget-->
|
||||
</div>
|
||||
<!--end::Info-->
|
||||
<!--begin::Progress-->
|
||||
<div class="h-4px w-100 bg-light mb-5" data-bs-toggle="tooltip" title="This project 50% completed">
|
||||
<div class="bg-primary rounded h-4px" role="progressbar" style="width: 50%" aria-valuenow="50" aria-valuemin="0" aria-valuemax="100"></div>
|
||||
</div>
|
||||
<!--end::Progress-->
|
||||
<!--begin::Users-->
|
||||
<div class="symbol-group symbol-hover">
|
||||
<!--begin::User-->
|
||||
|
||||
<?=$row->offer_code?>
|
||||
|
||||
<!--begin::User-->
|
||||
</div>
|
||||
<!--end::Users-->
|
||||
</div>
|
||||
<!--end:: Card body-->
|
||||
</a>
|
||||
<!--end::Card-->
|
||||
</div>
|
||||
<!--end::Col-->
|
||||
<?php
|
||||
}
|
||||
?>
|
||||
|
||||
|
||||
</div>
|
||||
<!--end::Row-->
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<!-- Basic modal -->
|
||||
<div id="modal_theme_primary" class="modal fade">
|
||||
<div class="modal-dialog modal-dialog-centered mw-650px">
|
||||
<div class="modal-content">
|
||||
<!--begin::Modal header-->
|
||||
<div class="modal-header pb-0 border-0 justify-content-end">
|
||||
<!--begin::Close-->
|
||||
<div class="btn btn-sm btn-icon btn-active-color-primary" data-bs-dismiss="modal">
|
||||
<!--begin::Svg Icon | path: icons/duotune/arrows/arr061.svg-->
|
||||
<span class="svg-icon svg-icon-1">
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none">
|
||||
<rect opacity="0.5" x="6" y="17.3137" width="16" height="2" rx="1" transform="rotate(-45 6 17.3137)" fill="currentColor" />
|
||||
<rect x="7.41422" y="6" width="16" height="2" rx="1" transform="rotate(45 7.41422 6)" fill="currentColor" />
|
||||
</svg>
|
||||
</span>
|
||||
<!--end::Svg Icon-->
|
||||
</div>
|
||||
<!--end::Close-->
|
||||
</div>
|
||||
<!--begin::Modal header-->
|
||||
<div id="modal-content">
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<!-- /basic modal -->
|
||||
<!-- /main content -->
|
||||
<script type="text/javascript">
|
||||
<!--
|
||||
|
||||
var current_job_contract = null;
|
||||
|
||||
function showMarketJobModal(job_contract) {
|
||||
//alert(job_contract);
|
||||
if (typeof event !== 'undefined') {
|
||||
event.preventDefault();
|
||||
}
|
||||
|
||||
// load the modal content with a loader gif and message
|
||||
$('#modal-content').html('Loading...');
|
||||
|
||||
// show modal window
|
||||
$('#modal_theme_primary').modal('show');
|
||||
|
||||
|
||||
//alert("/jobs/marketdetail?proc=NCOMPLETE&job_contract=" + job_contract);
|
||||
|
||||
|
||||
$.ajax({
|
||||
url: "/jobs/marketdetail?proc=NCOMPLETE&job_contract=" + job_contract
|
||||
}).done(function (data) {
|
||||
//alert(data);
|
||||
$('#modal-content').html(data);
|
||||
});
|
||||
}
|
||||
|
||||
function EDetail(job_contract) {
|
||||
if (current_job_contract!=null) {
|
||||
$('#'+current_job_contract).html('');
|
||||
@@ -92,6 +211,10 @@ function OMessage(offer_code) {
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
// -->
|
||||
</script>
|
||||
|
||||
|
||||
@@ -1,3 +1,5 @@
|
||||
<?php //include('../users/common/userstrip.php'); ?>
|
||||
|
||||
<!-- Main content -->
|
||||
<form method="post" name="post_nav_find" action="">
|
||||
<input type="hidden" name="jobID" value="">
|
||||
@@ -13,30 +15,46 @@
|
||||
}
|
||||
// -->
|
||||
</script>
|
||||
<div class="content-wrapper">
|
||||
<!-- Quick stats boxes -->
|
||||
<?php include('common/jobstrip.php'); ?>
|
||||
<!-- /quick stats boxes -->
|
||||
<?php include('common/jobstrip.php'); ?>
|
||||
|
||||
<!-- Marketing campaigns -->
|
||||
<div class="panel panel-flat">
|
||||
<div class="panel-heading">
|
||||
|
||||
<h5> Completed Job(s)/Task(s)</h5>
|
||||
|
||||
</div>
|
||||
|
||||
<div class="panel-heading" style="height: 550px;">
|
||||
<div class="table-responsive">
|
||||
<?php echo $job_table ?>
|
||||
<!--begin::Row-->
|
||||
<div class="row g-5 g-xl-8">
|
||||
|
||||
<?php include('common/jobside.php'); ?>
|
||||
<!--begin::Col-->
|
||||
<div class="col-xl-9">
|
||||
<!--begin::Tables Widget 5-->
|
||||
<div class="card card-xl-stretch mb-5 mb-xl-8">
|
||||
<!--begin::Header-->
|
||||
<div class="card-header border-0 pt-5">
|
||||
<h3 class="card-title align-items-start flex-column">
|
||||
Completed Job(s)/Task(s)
|
||||
</h3>
|
||||
<div class="card-toolbar">
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<div class="panel-heading">
|
||||
<?php echo $links; ?>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<!-- /marketing campaigns -->
|
||||
</div>
|
||||
<!-- /main content -->
|
||||
<!--end::Header-->
|
||||
|
||||
|
||||
<!--begin::Body-->
|
||||
<div class="card-body py-3">
|
||||
<div class="tab-content">
|
||||
<!--begin::Tap pane-->
|
||||
<div class="tab-pane fade show active" id="kt_table_widget_5_tab_1">
|
||||
<!--begin::Table container-->
|
||||
<?php echo $job_table ?>
|
||||
<!--end::Table-->
|
||||
</div>
|
||||
<!--end::Tap pane-->
|
||||
<?php echo $links; ?>
|
||||
</div>
|
||||
</div>
|
||||
<!--end::Body-->
|
||||
</div>
|
||||
<!--end::Tables Widget 5-->
|
||||
</div>
|
||||
<!--end::Col-->
|
||||
|
||||
</div>
|
||||
<!--end::Row-->
|
||||
|
||||
@@ -0,0 +1,135 @@
|
||||
<!-- Main content -->
|
||||
<form method="post" name="post_nav_find" action="/proj/thisjob">
|
||||
<input type="hidden" name="jobID" value="">
|
||||
</form>
|
||||
<script type="text/javascript">
|
||||
<!--
|
||||
function post_nav_find_action(what, value) {
|
||||
// alert(what);
|
||||
document.post_nav_find.action = what + '';
|
||||
document.post_nav_find.jobID.value = value;
|
||||
document.post_nav_find.submit();
|
||||
return false;
|
||||
}
|
||||
// -->
|
||||
</script>
|
||||
|
||||
<!-- Quick stats boxes -->
|
||||
<?php include('common/jobstrip.php');?>
|
||||
<!-- /quick stats boxes -->
|
||||
|
||||
<!--begin::Row-->
|
||||
<div class="row g-5 g-xl-8">
|
||||
<div class="col-xl-12">
|
||||
<!--begin::Charts Widget 1-->
|
||||
<div class="card card-xl-stretch mb-5 mb-xl-8">
|
||||
<!--begin::Header-->
|
||||
<div class="card-header border-0 pt-5">
|
||||
<!--begin::Title-->
|
||||
<h3 class="card-title align-items-start flex-column">
|
||||
<span class="card-label fw-bolder fs-3 mb-1">Past Due</span>
|
||||
</h3>
|
||||
<!--end::Title-->
|
||||
|
||||
</div>
|
||||
<!--end::Header-->
|
||||
<!--begin::Body-->
|
||||
<div class="card-body">
|
||||
<div class="tab-content">
|
||||
<!--begin::Tap pane-->
|
||||
<div class="tab-pane fade show active" id="kt_table_widget_5_tab_1">
|
||||
<!--begin::Table container-->
|
||||
<div class="table-responsive">
|
||||
<!--begin::Table-->
|
||||
<?php echo $job_table ?>
|
||||
</div>
|
||||
<!--end::Table-->
|
||||
<?php echo $links; ?>
|
||||
</div>
|
||||
<!--end::Tap pane-->
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
</div>
|
||||
<!--end::Body-->
|
||||
</div>
|
||||
<!--end::Charts Widget 1-->
|
||||
</div>
|
||||
</div>
|
||||
<!--end::Row-->
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<script type="text/javascript">
|
||||
<!--
|
||||
|
||||
function showModal(interest_id) {
|
||||
if (typeof event !== 'undefined') {
|
||||
event.preventDefault();
|
||||
}
|
||||
// collect data - either from forms or from data variables
|
||||
var id = $(this).data('id');
|
||||
|
||||
// load the modal content with a loader gif and message
|
||||
$('#modal-content').html('Loading...');
|
||||
|
||||
// show modal window
|
||||
$('#modal_theme_primary').modal('show');
|
||||
|
||||
// do the ajax bit
|
||||
var post_data = {
|
||||
'interest_id': id,
|
||||
};
|
||||
|
||||
$.ajax({
|
||||
url: "/jobs/jobinterest_modal?interest_id="+interest_id
|
||||
}).done(function (data) {
|
||||
//alert(data);
|
||||
$('#modal-content').html(data);
|
||||
});
|
||||
}
|
||||
|
||||
function showJobModal(contact_id) {
|
||||
if (typeof event !== 'undefined') {
|
||||
event.preventDefault();
|
||||
}
|
||||
// collect data - either from forms or from data variables
|
||||
var id = $(this).data('id');
|
||||
|
||||
// load the modal content with a loader gif and message
|
||||
$('#modal-content').html('Loading...');
|
||||
|
||||
// show modal window
|
||||
$('#modal_theme_primary').modal('show');
|
||||
|
||||
// do the ajax bit
|
||||
var post_data = {
|
||||
'interest_id': id,
|
||||
};
|
||||
//alert(contact_id);
|
||||
|
||||
$.ajax({
|
||||
url: "/jobs/jobdetail_modal?contact_id="+contact_id
|
||||
}).done(function (data) {
|
||||
// alert(data);
|
||||
$('#modal-content').html(data);
|
||||
});
|
||||
}
|
||||
|
||||
// -->
|
||||
</script>
|
||||
|
||||
|
||||
<!-- Basic modal -->
|
||||
<div id="modal_theme_primary" class="modal fade">
|
||||
<div class="modal-dialog mw-650px">
|
||||
<div class="modal-content" id="modal-content">
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<!-- /basic modal -->
|
||||
@@ -11,54 +11,54 @@
|
||||
return false;
|
||||
}
|
||||
// -->
|
||||
</script>
|
||||
</script>
|
||||
|
||||
<!-- Main content -->
|
||||
<div class="content-wrapper">
|
||||
<?php include('common/jobstrip.php'); ?>
|
||||
<?php include('common/jobstrip.php'); ?>
|
||||
|
||||
<!-- Main charts -->
|
||||
<div class="row">
|
||||
<div class="col-lg-12">
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<!-- /main charts -->
|
||||
<div class="row">
|
||||
<div class="col-md-9">
|
||||
<div class="panel panel-flat" style="height: 450px;">
|
||||
<div class="panel-heading">
|
||||
<h6 class="panel-title"><b><?php echo $dash_title; ?></b></h6>
|
||||
</div>
|
||||
<div class="panel-heading">
|
||||
<?php echo $job_interest_table; ?>
|
||||
<div class="panel-heading">
|
||||
<?php echo $links; ?>
|
||||
</div>
|
||||
|
||||
<!--begin::Row-->
|
||||
<div class="row g-5 g-xl-8">
|
||||
|
||||
<?php include('common/jobside.php'); ?>
|
||||
<!--begin::Col-->
|
||||
<div class="col-xl-9">
|
||||
<!--begin::Tables Widget 5-->
|
||||
<div class="card card-xl-stretch mb-5 mb-xl-8">
|
||||
<!--begin::Header-->
|
||||
<div class="card-header border-0 pt-5">
|
||||
<h3 class="card-title align-items-start flex-column">
|
||||
<?php echo $dash_title; ?>
|
||||
</h3>
|
||||
<div class="card-toolbar">
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<!--end::Header-->
|
||||
|
||||
|
||||
<!--begin::Body-->
|
||||
<div class="card-body py-3">
|
||||
<div class="tab-content">
|
||||
<!--begin::Tap pane-->
|
||||
<div class="tab-pane fade show active" id="kt_table_widget_5_tab_1">
|
||||
<!--begin::Table container-->
|
||||
<?php echo $job_interest_table; ?>
|
||||
<!--end::Table-->
|
||||
</div>
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
<div class="col-md-3">
|
||||
<div class="thumbnail">
|
||||
<div class="thumb">
|
||||
<a href="/proj/active" class="text-default"><img src="/assets/images/interest_dash.jpg" alt="Active Projects"></a>
|
||||
</div>
|
||||
|
||||
<div class="caption">
|
||||
<h6 class="no-margin-top text-semibold">Return to <a href="/proj/active" class="label bg-success-400">My Active Projects</a> <a href="/proj/active" class="text-muted"><i class="icon-download pull-right"></i></a></h6>
|
||||
|
||||
<!--end::Tap pane-->
|
||||
<?php echo $links; ?>
|
||||
</div>
|
||||
</div>
|
||||
<!--end::Body-->
|
||||
</div>
|
||||
<!--end::Tables Widget 5-->
|
||||
</div>
|
||||
|
||||
<!--end::Col-->
|
||||
|
||||
</div>
|
||||
<!-- /main content -->
|
||||
<!--end::Row-->
|
||||
|
||||
|
||||
|
||||
<script type="text/javascript">
|
||||
<!--
|
||||
|
||||
@@ -11,11 +11,14 @@
|
||||
return false;
|
||||
}
|
||||
// -->
|
||||
</script>
|
||||
</script>
|
||||
<?php include('common/jobstrip.php');?>
|
||||
|
||||
|
||||
|
||||
<!-- Main content -->
|
||||
<div class="content-wrapper">
|
||||
<?php include('common/jobstrip.php');?>
|
||||
|
||||
|
||||
<!-- Main charts -->
|
||||
<div class="row">
|
||||
@@ -25,7 +28,7 @@
|
||||
</div>
|
||||
<!-- /main charts -->
|
||||
<div class="row">
|
||||
<div class="col-md-9">
|
||||
<div class="col-md-12">
|
||||
<div class="panel panel-flat">
|
||||
<div class="panel-heading">
|
||||
<h6 class="panel-title"><b><?php echo $dash_title;?></b></h6>
|
||||
@@ -33,18 +36,7 @@
|
||||
<?php echo $offer_dash; ?>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-md-3">
|
||||
<div class="thumbnail">
|
||||
<div class="thumb">
|
||||
<a href="/proj/active" class="text-default"><img src="/assets/images/activeproject_dash.png" alt="Active Projects"></a>
|
||||
</div>
|
||||
|
||||
<div class="caption">
|
||||
<h6 class="no-margin-top text-semibold"><a href="/proj/active" class="text-default">My Active Projects</a> <a href="/proj/active" class="text-muted"><i class="icon-download pull-right"></i></a></h6>
|
||||
View active project. manage list and communication with deliverables.
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
@@ -0,0 +1,145 @@
|
||||
<?php include('common/jobstrip.php'); ?>
|
||||
|
||||
<!--begin::Row-->
|
||||
<div class="row g-5 g-xl-8">
|
||||
<!--begin::Col-->
|
||||
<div class="col-xl-9">
|
||||
<!--begin::Tables Widget 5-->
|
||||
<div class="card card-xl-stretch mb-5 mb-xl-8">
|
||||
<!--begin::Header-->
|
||||
<div class="card-header border-0 pt-5">
|
||||
<!-- h3 class="card-title align-items-start flex-column">
|
||||
Create New Job
|
||||
</h3 -->
|
||||
<div class="card-toolbar">
|
||||
|
||||
<!--begin::Section-->
|
||||
<div class="mb-17">
|
||||
<!--begin::Content-->
|
||||
<div class="d-flex flex-stack mb-5">
|
||||
<!--begin::Title-->
|
||||
<h3 class="text-dark">Select a job template</h3>
|
||||
<!--end::Title-->
|
||||
<!--begin::Link-->
|
||||
<a href="/jobs/create" class="fs-6 fw-bold link-primary">Create Custom Job</a>
|
||||
<!--end::Link-->
|
||||
</div>
|
||||
<!--end::Content-->
|
||||
<!--begin::Separator-->
|
||||
<div class="separator separator-dashed mb-9"></div>
|
||||
<!--end::Separator-->
|
||||
<!--begin::Row-->
|
||||
<div class="row g-10">
|
||||
|
||||
<?php
|
||||
foreach($template_data as $tdata){
|
||||
?>
|
||||
|
||||
<!--begin::Col-->
|
||||
<div class="col-md-4">
|
||||
<!--begin::Hot sales post-->
|
||||
<div class="card-xl-stretch me-md-6">
|
||||
<!--begin::Overlay-->
|
||||
|
||||
<!--begin::Image-->
|
||||
<div class="overlay-wrapper bgi-no-repeat bgi-position-center bgi-size-cover card-rounded min-h-175px" style="background-image:url('<?=$tdata['img']?>')"></div>
|
||||
<!--end::Image-->
|
||||
|
||||
<!--end::Overlay-->
|
||||
<!--begin::Body-->
|
||||
<div class="mt-5">
|
||||
<!--begin::Title-->
|
||||
<div class="fs-4 text-dark fw-bolder text-hover-primary text-dark lh-base"><?=$tdata['name']?></div>
|
||||
<!--end::Title-->
|
||||
<!--begin::Text-->
|
||||
<div class="fw-bold fs-5 text-gray-600 text-dark mt-3"><?=$tdata['description']?></div>
|
||||
<!--end::Text-->
|
||||
<!--begin::Text-->
|
||||
<div class="fs-6 fw-bolder mt-5 d-flex flex-stack">
|
||||
<!--begin::Label-->
|
||||
<span class="badge border border-dashed fs-2 fw-bolder text-dark p-2">
|
||||
<span class="fs-6 fw-bold text-gray-400">estimate-<?=$tdata['timeline_days']?> days</span></span>
|
||||
<!--end::Label-->
|
||||
<!--begin::Action-->
|
||||
<a href="/jobs/create" class="btn btn-sm btn-primary">Continue</a>
|
||||
<!--end::Action-->
|
||||
</div>
|
||||
<!--end::Text-->
|
||||
</div>
|
||||
<!--end::Body-->
|
||||
</div>
|
||||
<!--end::Hot sales post-->
|
||||
</div>
|
||||
<!--end::Col-->
|
||||
|
||||
|
||||
<?php
|
||||
}
|
||||
?>
|
||||
|
||||
|
||||
<!--begin::Col-->
|
||||
<div class="col-md-4">
|
||||
<!--begin::Hot sales post-->
|
||||
<div class="card-xl-stretch ms-md-6">
|
||||
<!--begin::Overlay-->
|
||||
|
||||
<!--begin::Image-->
|
||||
<div class="overlay-wrapper bgi-no-repeat bgi-position-center bgi-size-cover card-rounded min-h-175px" style="background-image:url('/site3/assets/media/jobs/custom_job.jpg')"></div>
|
||||
<!--end::Image-->
|
||||
|
||||
<!--end::Overlay-->
|
||||
<!--begin::Body-->
|
||||
<div class="mt-5">
|
||||
<!--begin::Title-->
|
||||
<a href="/jobs/create" class="fs-4 text-dark fw-bolder text-hover-primary text-dark lh-base">simply Create any type of job you wanted</a>
|
||||
<!--end::Title-->
|
||||
<!--begin::Text-->
|
||||
<div class="fw-bold fs-5 text-gray-600 text-dark mt-3">We’ve been focused on making a the from also not been eye</div>
|
||||
<!--end::Text-->
|
||||
<!--begin::Text-->
|
||||
<div class="fs-6 fw-bolder mt-5 d-flex flex-stack">
|
||||
<!--begin::Label-->
|
||||
<span class="badge border border-dashed fs-2 fw-bolder text-dark p-2">
|
||||
<span class="fs-6 fw-bold text-gray-400">.</span></span>
|
||||
<!--end::Label-->
|
||||
<!--begin::Action-->
|
||||
<a href="/jobs/create" class="btn btn-sm btn-primary">Continue</a>
|
||||
<!--end::Action-->
|
||||
</div>
|
||||
<!--end::Text-->
|
||||
</div>
|
||||
<!--end::Body-->
|
||||
</div>
|
||||
<!--end::Hot sales post-->
|
||||
</div>
|
||||
<!--end::Col-->
|
||||
</div>
|
||||
<!--end::Row-->
|
||||
</div>
|
||||
<!--end::Section-->
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<!--end::Header-->
|
||||
|
||||
|
||||
|
||||
|
||||
<!--begin::Body-->
|
||||
<div class="card-body py-3">
|
||||
<div class="tab-content">
|
||||
|
||||
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<!--end::Body-->
|
||||
</div>
|
||||
<!--end::Tables Widget 5-->
|
||||
</div>
|
||||
<!--end::Col-->
|
||||
<?php include('common/jobside.php'); ?>
|
||||
</div>
|
||||
<!--end::Row-->
|
||||
|
||||
@@ -1,9 +1,94 @@
|
||||
<form method="post" name="post_nav_find" action="">
|
||||
<input type="hidden" name="jobOfferID" value="<?php echo $jobOfferID; ?>">
|
||||
</form>
|
||||
<?php include('common/jobstrip.php'); ?>
|
||||
|
||||
<!--begin::Row-->
|
||||
<div class="row g-5 g-xl-8">
|
||||
<div class="col-xl-12">
|
||||
<!--begin::Charts Widget 1-->
|
||||
<div class="card card-xl-stretch mb-5 mb-xl-8">
|
||||
<!--begin::Header-->
|
||||
<div class="card-header border-0 pt-5">
|
||||
<!--begin::Title-->
|
||||
<h3 class="card-title align-items-start flex-column">
|
||||
<span class="card-label fw-bolder fs-3 mb-1">Recent Task Message</span>
|
||||
</h3>
|
||||
<!--end::Title-->
|
||||
|
||||
</div>
|
||||
<!--end::Header-->
|
||||
<!--begin::Body-->
|
||||
<div class="card-body">
|
||||
<div class="tab-content">
|
||||
<!--begin::Tap pane-->
|
||||
<div class="tab-pane fade show active" id="kt_table_widget_5_tab_1">
|
||||
<!--begin::Table container-->
|
||||
<div class="table-responsive">
|
||||
<!--begin::Table-->
|
||||
<table class='table table-striped table-hover table-bordered table-condensed'>
|
||||
<thead>
|
||||
<tr>
|
||||
<th colspan="2"><b><?php echo $title; ?></b></th></tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td colspan="2">
|
||||
<div class="alert alert-info no-border"> You have sent this job to <?php echo $job_sent_to; ?></div>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td style="width: 100px;"><b>Date</b></td><td><?php echo $added_date; ?></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td style="width: 100px;"><b>Description</b></td><td><?php echo $description; ?></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td style="width: 100px;"><b>Offer Expire</b></td><td><?php echo $expire; ?></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td style="width: 100px;"><b>Price</b></td><td><?php echo $price; ?> Naira</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td style="width: 100px;"><b>Duration</b></td><td><?php echo $timeline_days; ?> day(s)</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td style="width: 100px;"><b>Detail</b></td><td><?php echo $job_description; ?></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td colspan="2" style='text-align: center;'><input id="sendjob_tome" type="button" class="btn btn-info btn-xs" name='send' value='Send to me' onclick="return sendOfferToMe();"></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td style="width: 100px;"><b>Public Link</b></td><td><div class="alert alert-info no-border"> <?php echo $job_link; ?></div></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td colspan="2" style='text-align: right;'> <input id="reject_submit" type="button" class="btn btn-danger btn-xs" name='send' value='Cancel Offer' onclick="return cancelOffer();"></td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
</div>
|
||||
<!--end::Table-->
|
||||
</div>
|
||||
<!--end::Tap pane-->
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
</div>
|
||||
<!--end::Body-->
|
||||
</div>
|
||||
<!--end::Charts Widget 1-->
|
||||
</div>
|
||||
</div>
|
||||
<!--end::Row-->
|
||||
|
||||
|
||||
|
||||
<!-- Main content -->
|
||||
<div class="content-wrapper">
|
||||
<?php include('common/jobstrip.php'); ?>
|
||||
|
||||
|
||||
<!-- Main charts -->
|
||||
<div class="row">
|
||||
@@ -15,47 +100,7 @@
|
||||
<div class="row">
|
||||
<div class="col-md-12">
|
||||
<div class="panel panel-flat">
|
||||
<table class='table table-striped table-hover table-bordered table-condensed'>
|
||||
<thead>
|
||||
<tr>
|
||||
<th colspan="2"><b><?php echo $title; ?></b></th></tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td colspan="2">
|
||||
<div class="alert alert-info no-border"> You have sent this job to <?php echo $job_sent_to; ?></div>
|
||||
</td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td style="width: 100px;"><b>Date</b></td><td><?php echo $added_date; ?></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td style="width: 100px;"><b>Description</b></td><td><?php echo $description; ?></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td style="width: 100px;"><b>Offer Expire</b></td><td><?php echo $expire; ?></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td style="width: 100px;"><b>Price</b></td><td><?php echo $price; ?> Naira</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td style="width: 100px;"><b>Duration</b></td><td><?php echo $timeline_days; ?> day(s)</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td style="width: 100px;"><b>Detail</b></td><td><?php echo $job_description; ?></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td colspan="2" style='text-align: center;'><input id="sendjob_tome" type="button" class="btn btn-info btn-xs" name='send' value='Send to me' onclick="return sendOfferToMe();"></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td style="width: 100px;"><b>Public Link</b></td><td><div class="alert alert-info no-border"> <?php echo $job_link; ?></div></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td colspan="2" style='text-align: right;'> <input id="reject_submit" type="button" class="btn btn-danger btn-xs" name='send' value='Cancel Offer' onclick="return cancelOffer();"></td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -0,0 +1,13 @@
|
||||
<div class="d-flex flex-center flex-column-auto p-10">
|
||||
<div class="d-flex align-items-center fw-bold fs-6">
|
||||
<a href="https://www.wrenchboard.com/about-us" class="text-muted text-hover-primary px-2">About</a>
|
||||
<a href="https://www.wrenchboard.com/service" class="text-muted text-hover-primary px-2">Services</a>
|
||||
<a href="https://www.wrenchboard.com/contact" class="text-muted text-hover-primary px-2">Contact Us</a>
|
||||
</div>
|
||||
</div>
|
||||
<div class="d-flex flex-center flex-column-auto p-10">
|
||||
|
||||
<div class="d-flex align-items-center fw-bold fs-6">
|
||||
© <?=date('Y')?> - <a href="/" class="navbar-link">WrenchBoard</a>
|
||||
</div>
|
||||
</div>
|
||||
@@ -0,0 +1,23 @@
|
||||
<meta charset="utf-8" />
|
||||
<meta name="description" content="wrenchboard.com is an online marketplace to make money from your skills, find, buy and sell professional services. Connect with freelancers to get work done faster. Trade your freelance services." />
|
||||
<meta name="keywords" content="Online Jobs, Online Workers, work online Nigeria, hire a freelancer, hire freelancers, freelance marketplace, freelancer hire, freelance service, freelance professional services, How to make money online, find workers online, Online Services, digital services, freelancers community in Ghana, freelancers community in Nigeria, freelancer site in Africa, Best freelance website in Africa, Freelance Designers, Photographers, Writers in Nigeria, freelancers, freelance outsourcing in Nigeria, freelance IT services in Nigeria, hire freelancers online in Nigeria, freelance services online in Nigeria, freelance contractor in Nigeria, freelance sites in Nigeria, freelance jobs in Nigeria, freelance projects in Nigeria, freelance jobs online in Nigeria, professional freelancers in Nigeria, buy professional services in Nigeria, professional services jobs, professional business services, professional service providers in Nigeria, freelancing services, freelancing sites in Nigeria, freelancers for hire in Nigeria, freelancer search in Nigeria, search freelancer in Nigeria, find freelancers in Nigeria, Find workers US. Outsource from US to Nigeria, find a freelancer in Nigeria, freelancing projects in Nigeria, web freelancing in Nigeria, outsourcing sites freelancers in Nigeria, website for freelancers in Nigeria, marketplace for freelancers " />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
||||
<meta property="og:locale" content="en_US" />
|
||||
<meta property="og:type" content="article" />
|
||||
<meta property="og:title" content="WrenchBoard: Find a Freelancer | Sell Professional Services" />
|
||||
<meta property="og:url" content="https://www.wrenchboard.com" />
|
||||
<meta property="og:site_name" content="wrenchBoard" />
|
||||
<link rel="shortcut icon" href="/assets/ext/images/favicon.png">
|
||||
<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Poppins:300,400,500,600,700" />
|
||||
<link href="/site3/assets/plugins/global/plugins.bundle.css" rel="stylesheet" type="text/css" />
|
||||
<link href="/site3/assets/css/style.bundle.css" rel="stylesheet" type="text/css" />
|
||||
<style>
|
||||
.btn.btn-primary {
|
||||
color: #fff;
|
||||
border-color: #4687ba;
|
||||
background-color: #4687ba;
|
||||
}
|
||||
.gr1{
|
||||
background-color: red;
|
||||
}
|
||||
</style>
|
||||
@@ -0,0 +1,64 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<!--begin::Head-->
|
||||
<head>
|
||||
<meta name="title" content="WrenchBoard: Find a Freelancer | Sell Professional Services" />
|
||||
<?php include("header_contents.php");?>
|
||||
</head>
|
||||
<!--end::Head-->
|
||||
<!--begin::Body-->
|
||||
<body id="kt_body" class="bg-body">
|
||||
<!--begin::Main-->
|
||||
<!--begin::Root-->
|
||||
<div class="d-flex flex-column flex-root">
|
||||
<!--begin::Authentication - Password reset -->
|
||||
<div class="d-flex flex-column flex-column-fluid bgi-position-y-bottom position-x-center bgi-no-repeat bgi-size-contain bgi-attachment-fixed" style="background-image: url(site3/assets/media/background/home.jpg">
|
||||
<!--begin::Content-->
|
||||
<div class="d-flex flex-center flex-column flex-column-fluid p-10 pb-lg-20">
|
||||
<!--begin::Logo-->
|
||||
<a href="/" class="mb-12">
|
||||
<img alt="WrenchBoard" src="/assets/ext/images/wrenchboard.png" class="h-40px" />
|
||||
</a>
|
||||
<!--end::Logo-->
|
||||
<!--begin::Wrapper-->
|
||||
<div class="w-lg-500px bg-body rounded shadow-sm p-10 p-lg-15 mx-auto">
|
||||
<!--begin::Form-->
|
||||
<form class="form w-100" novalidate="novalidate" action="/" method="POST">
|
||||
<!--begin::Heading-->
|
||||
<div class="text-center mb-10">
|
||||
<!--begin::Title-->
|
||||
<h1 class="text-dark mb-3"> Invalid verification link </h1>
|
||||
<!--end::Title-->
|
||||
<!--begin::Link-->
|
||||
<div class="text-gray-400 fw-bold fs-4"> <hr size="1"></div>
|
||||
<!--end::Link-->
|
||||
</div>
|
||||
<!--begin::Heading-->
|
||||
<!--begin::Input group-->
|
||||
<div class="fv-row mb-10">
|
||||
<label class="form-label fw-bolder text-gray-900 fs-6"><? echo $page_title; ?></label>
|
||||
|
||||
|
||||
<hr size="1">
|
||||
This error occurs because you have already verified this link or the link has expired. Try login or reset password. If none worked, try to create the account from the start.
|
||||
</div>
|
||||
|
||||
|
||||
<div class="d-flex flex-wrap justify-content-center pb-lg-0">
|
||||
<a href="/" class="btn btn-lg btn-light-primary fw-bolder">Return Home</a>
|
||||
</div>
|
||||
</form>
|
||||
<!--end::Form-->
|
||||
</div>
|
||||
<!--end::Wrapper-->
|
||||
</div>
|
||||
<!--end::Content-->
|
||||
<?php include("footer_links.php");?>
|
||||
</div>
|
||||
</div>
|
||||
<script src="/site3/assets/plugins/global/plugins.bundle.js"></script>
|
||||
<script src="/site3/assets/js/scripts.bundle.js"></script>
|
||||
<script src="assets/js/custom/authentication/password-reset/password-reset.js"></script>
|
||||
</body>
|
||||
<!--end::Body-->
|
||||
</html>
|
||||
@@ -0,0 +1,98 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta name="title" content="WrenchBoard: Find a Freelancer | Sell Professional Services" />
|
||||
<?php include("header_contents.php");?>
|
||||
</head>
|
||||
<body id="kt_body" class="bg-body">
|
||||
<script>
|
||||
(function (i, s, o, g, r, a, m) {
|
||||
i['GoogleAnalyticsObject'] = r;
|
||||
i[r] = i[r] || function () {
|
||||
(i[r].q = i[r].q || []).push(arguments)
|
||||
}, i[r].l = 1 * new Date();
|
||||
a = s.createElement(o),
|
||||
m = s.getElementsByTagName(o)[0];
|
||||
a.async = 1;
|
||||
a.src = g;
|
||||
m.parentNode.insertBefore(a, m)
|
||||
})(window, document, 'script', 'https://www.google-analytics.com/analytics.js', 'ga');
|
||||
|
||||
ga('create', 'UA-54829827-4', 'auto');
|
||||
ga('send', 'pageview');
|
||||
|
||||
</script>
|
||||
<div class="d-flex flex-column flex-root">
|
||||
<div class="d-flex flex-column flex-column-fluid bgi-position-y-bottom position-x-center bgi-no-repeat bgi-size-contain bgi-attachment-fixed" style="background-image: url(site3/assets/media/background/home.jpg">
|
||||
<div class="d-flex flex-center flex-column flex-column-fluid p-10 pb-lg-20">
|
||||
<a href="#" class="mb-12">
|
||||
<img alt="WrenchBoard" src="/assets/ext/images/wrenchboard.png" class="h-40px" />
|
||||
</a>
|
||||
<div class="w-lg-500px bg-body rounded shadow-sm p-10 p-lg-15 mx-auto">
|
||||
<form class="form w-100" action="/login" method="POST">
|
||||
<div class="text-center mb-10">
|
||||
<h1 class="text-dark mb-3">Sign In to WrenchBoard</h1>
|
||||
<div class="text-gray-400 fw-bold fs-4">New Here?
|
||||
<a href="/signup" class="link-primary fw-bolder">Create an Account</a></div>
|
||||
</div>
|
||||
<div class="fv-row mb-10">
|
||||
<label class="form-label fs-6 fw-bolder text-dark">Email</label>
|
||||
<input class="form-control form-control-lg form-control-solid" type="text" placeholder="Username" name="username" required="required" autocomplete="off" />
|
||||
</div>
|
||||
<div class="fv-row mb-10">
|
||||
<div class="d-flex flex-stack mb-2">
|
||||
<label class="form-label fw-bolder text-dark fs-6 mb-0">Password</label>
|
||||
<a href="/password_recovery" class="link-primary fs-6 fw-bolder">Forgot Password ?</a>
|
||||
</div>
|
||||
<input class="form-control form-control-lg form-control-solid" type="password" placeholder="Password" name="password" required="required" autocomplete="off" />
|
||||
</div>
|
||||
<?php
|
||||
if ( isset($login_message) && $login_message !=''){
|
||||
?>
|
||||
<div class="fv-row mb-10">
|
||||
|
||||
<?php echo isset($login_message)?$login_message:''; ?>
|
||||
<div class="d-flex flex-stack mb-2"></div>
|
||||
</div>
|
||||
<?php
|
||||
}
|
||||
?>
|
||||
|
||||
<div class="text-center">
|
||||
<button type="submit" id="kt_sign_in_submit" class="btn btn-lg btn-primary w-100 mb-5">
|
||||
<span class="indicator-label">Continue</span>
|
||||
<span class="indicator-progress">Please wait...
|
||||
<span class="spinner-border spinner-border-sm align-middle ms-2"></span></span>
|
||||
</button>
|
||||
<div class="text-center text-muted text-uppercase fw-bolder mb-5">or</div>
|
||||
<!--begin::Google link-->
|
||||
<a href="<?php echo isset($login_links)?$login_links['Google']:'#'; ?>" class="btn btn-flex flex-center btn-light btn-lg w-100 mb-5">
|
||||
<img alt="Logo" src="/site3/assets/media/svg/brand-logos/google-icon.svg" class="h-20px me-3" />Continue with Google</a -->
|
||||
<!--end::Google link-->
|
||||
<!--begin::Facebook link-->
|
||||
<a href="<?php echo $this->lib_login->getLoginUrl(); ?>" class="btn btn-flex flex-center btn-light btn-lg w-100 mb-5">
|
||||
<img alt="Logo" src="/site3/assets/media/svg/brand-logos/facebook-4.svg" class="h-20px me-3" />Continue with Facebook</a>
|
||||
<!--end::Facebook link-->
|
||||
<!--begin::Apple link-->
|
||||
<!-- a href="#" class="btn btn-flex flex-center btn-light btn-lg w-100">
|
||||
<img alt="Logo" src="/site3/assets/media/svg/brand-logos/apple-black.svg" class="h-20px me-3" />Continue with Apple</a -->
|
||||
<!--end::Apple link-->
|
||||
<?php /* echo isset($login_links) ? $login_links :''; */ ?>
|
||||
</div>
|
||||
<!--end::Actions-->
|
||||
</form>
|
||||
<!--end::Form-->
|
||||
</div>
|
||||
<!--end::Wrapper-->
|
||||
</div>
|
||||
<!--end::Content-->
|
||||
<!--begin::Footer-->
|
||||
<?php include("footer_links.php");?>
|
||||
</div>
|
||||
</div>
|
||||
<script src="/site3/assets/plugins/global/plugins.bundle.js"></script>
|
||||
<script src="/site3/assets/js/scripts.bundle.js"></script>
|
||||
<script src="/site3/assets/js/custom/home/general.js"></script>
|
||||
</body>
|
||||
<!--end::Body-->
|
||||
</html>
|
||||
@@ -0,0 +1,138 @@
|
||||
<form method="post" name="post_nav_find" action="">
|
||||
<input type="hidden" name="jobOfferID" value="">
|
||||
<input type="hidden" name="jobID" value="">
|
||||
</form>
|
||||
<script type="text/javascript">
|
||||
<!--
|
||||
function post_nav_find_action(what, value) {
|
||||
// alert(what);
|
||||
document.post_nav_find.action = what + '';
|
||||
document.post_nav_find.jobOfferID.value = value;
|
||||
document.post_nav_find.jobID.value = value;
|
||||
document.post_nav_find.submit();
|
||||
return false;
|
||||
}
|
||||
// -->
|
||||
</script>
|
||||
|
||||
|
||||
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta name="title" content="WrenchBoard: Find a Freelancer | Sell Professional Services" />
|
||||
<?php include("header_contents.php");?>
|
||||
</head>
|
||||
<body id="kt_body" class="bg-body">
|
||||
<script>
|
||||
(function (i, s, o, g, r, a, m) {
|
||||
i['GoogleAnalyticsObject'] = r;
|
||||
i[r] = i[r] || function () {
|
||||
(i[r].q = i[r].q || []).push(arguments)
|
||||
}, i[r].l = 1 * new Date();
|
||||
a = s.createElement(o),
|
||||
m = s.getElementsByTagName(o)[0];
|
||||
a.async = 1;
|
||||
a.src = g;
|
||||
m.parentNode.insertBefore(a, m)
|
||||
})(window, document, 'script', 'https://www.google-analytics.com/analytics.js', 'ga');
|
||||
|
||||
ga('create', 'UA-54829827-4', 'auto');
|
||||
ga('send', 'pageview');
|
||||
|
||||
</script>
|
||||
|
||||
<?php
|
||||
//var_dump($job_data);
|
||||
?>
|
||||
|
||||
<div class="d-flex flex-column flex-root">
|
||||
<div class="d-flex flex-column flex-column-fluid bgi-position-y-bottom position-x-center bgi-no-repeat bgi-size-contain bgi-attachment-fixed" style="background-image: url(site3/assets/media/background/home.png); ">
|
||||
<div class="d-flex flex-center flex-column flex-column-fluid p-10 pb-lg-20">
|
||||
<a href="#" class="mb-12">
|
||||
<img alt="WrenchBoard" src="/assets/ext/images/wrenchboard.png" class="h-40px" />
|
||||
</a>
|
||||
|
||||
</div>
|
||||
<!--end::Content-->
|
||||
|
||||
|
||||
<!--begin::Content-->
|
||||
<div class="content d-flex flex-column flex-column-fluid" id="kt_content">
|
||||
<!--begin::Post-->
|
||||
<div class="post d-flex flex-column-fluid" id="kt_post">
|
||||
<!--begin::Container-->
|
||||
<div id="kt_content_container" class="container-xxl">
|
||||
<!--begin::Row-->
|
||||
<div class="row g-5 g-xl-8">
|
||||
<!--begin::Col-->
|
||||
<div class="col-xl-3">
|
||||
<!--begin::Tables Widget 1-->
|
||||
<div class="card card-xl-stretch mb-xl-8">
|
||||
<!--begin::Header-->
|
||||
<div class="card-header border-0 pt-5">
|
||||
<h3 class="card-title align-items-start flex-column">
|
||||
<span class="card-label fw-bolder fs-3 mb-1">.</span>
|
||||
</h3>
|
||||
|
||||
</div>
|
||||
<!--end::Header-->
|
||||
<!--begin::Body-->
|
||||
<div class="card-body py-3">
|
||||
<a href="/login" class="btn btn-primary btn-block btn-sm px-5">Home</a>
|
||||
</div>
|
||||
</div>
|
||||
<!--endW::Tables Widget 1-->
|
||||
</div>
|
||||
<!--end::Col-->
|
||||
<!--begin::Col-->
|
||||
<div class="col-xl-9">
|
||||
<!--begin::Tables Widget 2-->
|
||||
<div class="card card-xl-stretch mb-5 mb-xl-8">
|
||||
<!--begin::Header-->
|
||||
<div class="card-header border-0 pt-5">
|
||||
<h3 class="card-title align-items-start flex-column">
|
||||
<span class="card-label fw-bolder fs-3 mb-1"><?=$job_data->title?></span>
|
||||
</h3>
|
||||
|
||||
</div>
|
||||
<!--end::Header-->
|
||||
<!--begin::Body-->
|
||||
<div class="card-body py-3">
|
||||
<!--begin::Table container-->
|
||||
<div class="table-responsive">
|
||||
<!--begin::Table-->
|
||||
|
||||
<?=$market_table?>
|
||||
|
||||
|
||||
<!--end::Table-->
|
||||
</div>
|
||||
<!--end::Table container-->
|
||||
</div>
|
||||
<!--end::Body-->
|
||||
</div>
|
||||
<!--end::Tables Widget 2-->
|
||||
</div>
|
||||
<!--end::Col-->
|
||||
</div>
|
||||
<!--end::Row-->
|
||||
|
||||
</div>
|
||||
<!--end::Container-->
|
||||
</div>
|
||||
<!--end::Post-->
|
||||
</div>
|
||||
<!--end::Content-->
|
||||
|
||||
<!--begin::Footer-->
|
||||
<?php include("footer_links.php");?>
|
||||
</div>
|
||||
</div>
|
||||
<script src="/site3/assets/plugins/global/plugins.bundle.js"></script>
|
||||
<script src="/site3/assets/js/scripts.bundle.js"></script>
|
||||
<script src="/site3/assets/js/custom/home/general.js"></script>
|
||||
</body>
|
||||
<!--end::Body-->
|
||||
</html>
|
||||
|
||||
@@ -0,0 +1,69 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<!--begin::Head-->
|
||||
<head>
|
||||
<meta name="title" content="WrenchBoard: Find a Freelancer | Sell Professional Services" />
|
||||
<?php include("header_contents.php");?>
|
||||
</head>
|
||||
<!--end::Head-->
|
||||
<!--begin::Body-->
|
||||
<body id="kt_body" class="bg-body">
|
||||
<!--begin::Main-->
|
||||
<!--begin::Root-->
|
||||
<div class="d-flex flex-column flex-root">
|
||||
<!--begin::Authentication - Password reset -->
|
||||
<div class="d-flex flex-column flex-column-fluid bgi-position-y-bottom position-x-center bgi-no-repeat bgi-size-contain bgi-attachment-fixed" style="background-image: url(site3/assets/media/background/home.jpg">
|
||||
<!--begin::Content-->
|
||||
<div class="d-flex flex-center flex-column flex-column-fluid p-10 pb-lg-20">
|
||||
<!--begin::Logo-->
|
||||
<a href="/" class="mb-12">
|
||||
<img alt="WrenchBoard" src="/assets/ext/images/wrenchboard.png" class="h-40px" />
|
||||
</a>
|
||||
<!--end::Logo-->
|
||||
<!--begin::Wrapper-->
|
||||
<div class="w-lg-500px bg-body rounded shadow-sm p-10 p-lg-15 mx-auto">
|
||||
<!--begin::Form-->
|
||||
<form class="form w-100" novalidate="novalidate" action="/password_recovery" method="POST">
|
||||
<!--begin::Heading-->
|
||||
<div class="text-center mb-10">
|
||||
<!--begin::Title-->
|
||||
<h1 class="text-dark mb-3">Forgot Password ?</h1>
|
||||
<!--end::Title-->
|
||||
<!--begin::Link-->
|
||||
<div class="text-gray-400 fw-bold fs-4">Enter your email to reset your password.</div>
|
||||
<!--end::Link-->
|
||||
</div>
|
||||
<!--begin::Heading-->
|
||||
<!--begin::Input group-->
|
||||
<div class="fv-row mb-10">
|
||||
<label class="form-label fw-bolder text-gray-900 fs-6">Email</label>
|
||||
<input class="form-control form-control-solid" type="email" placeholder="Your Username/Email" name="email" value="" autocomplete="off" />
|
||||
</div>
|
||||
<!--end::Input group-->
|
||||
<!--begin::Actions-->
|
||||
<?php echo $action_message; ?>
|
||||
|
||||
<div class="d-flex flex-wrap justify-content-center pb-lg-0">
|
||||
<button type="submit" id="kt_password_reset_submit" class="btn btn-lg btn-primary fw-bolder me-4">
|
||||
<span class="indicator-label">Submit</span>
|
||||
<span class="indicator-progress">Please wait...
|
||||
<span class="spinner-border spinner-border-sm align-middle ms-2"></span></span>
|
||||
</button>
|
||||
<a href="/" class="btn btn-lg btn-light-primary fw-bolder">Cancel</a>
|
||||
</div>
|
||||
<!--end::Actions-->
|
||||
</form>
|
||||
<!--end::Form-->
|
||||
</div>
|
||||
<!--end::Wrapper-->
|
||||
</div>
|
||||
<!--end::Content-->
|
||||
<?php include("footer_links.php");?>
|
||||
</div>
|
||||
</div>
|
||||
<script src="/site3/assets/plugins/global/plugins.bundle.js"></script>
|
||||
<script src="/site3/assets/js/scripts.bundle.js"></script>
|
||||
<script src="assets/js/custom/authentication/password-reset/password-reset.js"></script>
|
||||
</body>
|
||||
<!--end::Body-->
|
||||
</html>
|
||||
@@ -0,0 +1,173 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<!--begin::Head-->
|
||||
<head>
|
||||
<meta name="title" content="WrenchBoard: Find a Freelancer | Sell Professional Services" />
|
||||
<?php include("header_contents.php");?>
|
||||
</head>
|
||||
<!--end::Head-->
|
||||
<!--begin::Body-->
|
||||
<body id="kt_body" class="bg-body">
|
||||
<!--begin::Main-->
|
||||
<!--begin::Root-->
|
||||
<div class="d-flex flex-column flex-root">
|
||||
<!--begin::Authentication - Sign-up -->
|
||||
<div class="d-flex flex-column flex-column-fluid bgi-position-y-bottom position-x-center bgi-no-repeat bgi-size-contain bgi-attachment-fixed" style="background-image: url(site3/assets/media/background/home.jpg">
|
||||
<!--begin::Content-->
|
||||
<div class="d-flex flex-center flex-column flex-column-fluid p-10 pb-lg-20">
|
||||
<!--begin::Logo-->
|
||||
<a href="/" class="mb-12">
|
||||
<img alt="WrenchBoard" src="/assets/ext/images/wrenchboard.png" class="h-40px" />
|
||||
</a>
|
||||
<!--end::Logo-->
|
||||
<!--begin::Wrapper-->
|
||||
<div class="w-lg-600px bg-body rounded shadow-sm p-10 p-lg-15 mx-auto">
|
||||
<!--begin::Form-->
|
||||
<form class="form w-100" action="signup" method="POST" id="registration">
|
||||
<!--begin::Heading-->
|
||||
<div class="mb-10 text-center">
|
||||
<!--begin::Title-->
|
||||
<h1 class="text-dark mb-3">Create an Account</h1>
|
||||
<!--end::Title-->
|
||||
<!--begin::Link-->
|
||||
<div class="text-gray-400 fw-bold fs-4">Already have an account?
|
||||
<a href="/" class="link-primary fw-bolder">Sign in here</a></div>
|
||||
<!--end::Link-->
|
||||
</div>
|
||||
<!--end::Heading-->
|
||||
<!--begin::Action-->
|
||||
<!-- button type="button" class="btn btn-light-primary fw-bolder w-100 mb-10">
|
||||
<img alt="Logo" src="/site3/assets/media/svg/brand-logos/google-icon.svg" class="h-20px me-3" />Sign in with Google</button -->
|
||||
<!--end::Action-->
|
||||
<!--begin::Action-->
|
||||
<button type="button" class="btn btn-light-primary fw-bolder w-100 mb-10">
|
||||
<img alt="Logo" src="/site3/assets/media/svg/brand-logos/facebook-4.svg" class="h-20px me-3" />Sign in with Facebook</button>
|
||||
<!--end::Action-->
|
||||
<!--begin::Separator-->
|
||||
<div class="d-flex align-items-center mb-10">
|
||||
<div class="border-bottom border-gray-300 mw-50 w-100"></div>
|
||||
<span class="fw-bold text-gray-400 fs-7 mx-2">OR</span>
|
||||
<div class="border-bottom border-gray-300 mw-50 w-100"></div>
|
||||
</div>
|
||||
<!--end::Separator-->
|
||||
<!--begin::Input group-->
|
||||
|
||||
|
||||
<!--begin::Input group-->
|
||||
<div class="fv-row mb-7">
|
||||
<label class="form-label fw-bolder text-dark fs-6">Country</label>
|
||||
<?php echo $country_combo ?>
|
||||
</div>
|
||||
<!--end::Input group-->
|
||||
|
||||
|
||||
<div class="row fv-row mb-7">
|
||||
<!--begin::Col-->
|
||||
<div class="col-xl-6">
|
||||
<label class="form-label fw-bolder text-dark fs-6">First Name</label>
|
||||
<input class="form-control form-control-lg form-control-solid" type="text" placeholder="Firstname" name="firstname" value="<?php echo $firstname;?>" required="required" autocomplete="off" />
|
||||
</div>
|
||||
<!--end::Col-->
|
||||
<!--begin::Col-->
|
||||
<div class="col-xl-6">
|
||||
<label class="form-label fw-bolder text-dark fs-6">Last Name</label>
|
||||
<input class="form-control form-control-lg form-control-solid" type="text" placeholder="Lastname" name="lastname" value="<?php echo $lastname;?>" required="required" autocomplete="off" />
|
||||
</div>
|
||||
<!--end::Col-->
|
||||
</div>
|
||||
<!--end::Input group-->
|
||||
<!--begin::Input group-->
|
||||
<div class="fv-row mb-7">
|
||||
<label class="form-label fw-bolder text-dark fs-6">Email</label>
|
||||
<input class="form-control form-control-lg form-control-solid" type="email" placeholder="Your email-Username" name="email" value="<?php echo $email;?>" required="required" autocomplete="off" />
|
||||
</div>
|
||||
<!--end::Input group-->
|
||||
<!--begin::Input group-->
|
||||
<div class="mb-10 fv-row" data-kt-password-meter="true">
|
||||
<!--begin::Wrapper-->
|
||||
<div class="mb-1">
|
||||
<!--begin::Label-->
|
||||
<label class="form-label fw-bolder text-dark fs-6">Password</label>
|
||||
<!--end::Label-->
|
||||
<!--begin::Input wrapper-->
|
||||
<div class="position-relative mb-3">
|
||||
<input class="form-control form-control-lg form-control-solid" type="password" placeholder="Create password" name="password" required="required" autocomplete="off" />
|
||||
<span class="btn btn-sm btn-icon position-absolute translate-middle top-50 end-0 me-n2" data-kt-password-meter-control="visibility">
|
||||
<i class="bi bi-eye-slash fs-2"></i>
|
||||
<i class="bi bi-eye fs-2 d-none"></i>
|
||||
</span>
|
||||
</div>
|
||||
<!--end::Input wrapper-->
|
||||
<!--begin::Meter-->
|
||||
<div class="d-flex align-items-center mb-3" data-kt-password-meter-control="highlight">
|
||||
<div class="flex-grow-1 bg-secondary bg-active-success rounded h-5px me-2"></div>
|
||||
<div class="flex-grow-1 bg-secondary bg-active-success rounded h-5px me-2"></div>
|
||||
<div class="flex-grow-1 bg-secondary bg-active-success rounded h-5px me-2"></div>
|
||||
<div class="flex-grow-1 bg-secondary bg-active-success rounded h-5px"></div>
|
||||
</div>
|
||||
<!--end::Meter-->
|
||||
</div>
|
||||
<!--end::Wrapper-->
|
||||
<!--begin::Hint-->
|
||||
<div class="text-muted">Use 8 or more characters with a mix of letters, numbers & symbols.</div>
|
||||
<!--end::Hint-->
|
||||
</div>
|
||||
<!--end::Input group=-->
|
||||
<!--begin::Input group-->
|
||||
<!-- div class="fv-row mb-5">
|
||||
<label class="form-label fw-bolder text-dark fs-6">Confirm Password</label>
|
||||
<input class="form-control form-control-lg form-control-solid" type="password" placeholder="" name="confirm-password" required="required" autocomplete="off" />
|
||||
</div -->
|
||||
<!--end::Input group-->
|
||||
<!--begin::Input group-->
|
||||
<div class="fv-row mb-10">
|
||||
<label class="form-check form-check-custom form-check-solid form-check-inline">
|
||||
<input class="form-check-input" type="checkbox" name="terms" <?=$terms?> required="required" value="on" />
|
||||
<span class="form-check-label fw-bold text-gray-700 fs-6">I Agree
|
||||
<a href="#" class="ms-1 link-primary">Terms and conditions</a>.</span>
|
||||
</label>
|
||||
</div>
|
||||
<!--end::Input group-->
|
||||
<!--begin::Actions-->
|
||||
<?php
|
||||
if (isset($signup_error_style) && $signup_error_style !=''){
|
||||
?>
|
||||
<div class="text-center">
|
||||
<? echo $signup_error_style; ?>
|
||||
</div>
|
||||
<?php
|
||||
}
|
||||
?>
|
||||
|
||||
<div class="text-center">
|
||||
<button type="button" onclick="document.getElementById('registration').submit();" class="btn btn-lg btn-primary">
|
||||
<span class="indicator-label">Submit</span>
|
||||
<span class="indicator-progress">Please wait...
|
||||
<span class="spinner-border spinner-border-sm align-middle ms-2"></span></span>
|
||||
</button>
|
||||
</div>
|
||||
|
||||
|
||||
<!--end::Actions-->
|
||||
</form>
|
||||
<!--end::Form-->
|
||||
</div>
|
||||
<!--end::Wrapper-->
|
||||
</div>
|
||||
<!--end::Content-->
|
||||
<?php include("footer_links.php");?>
|
||||
</div>
|
||||
<!--end::Authentication - Sign-up-->
|
||||
</div>
|
||||
<!--end::Root-->
|
||||
<!--end::Main-->
|
||||
<!--begin::Javascript-->
|
||||
<!--begin::Global Javascript Bundle(used by all pages)-->
|
||||
<script src="/site3/assets/plugins/global/plugins.bundle.js"></script>
|
||||
<script src="/site3/assets/js/scripts.bundle.js"></script>
|
||||
<script src="/site3/assets/js/custom/signup/general.js"></script>
|
||||
<!--end::Page Custom Javascript-->
|
||||
<!--end::Javascript-->
|
||||
</body>
|
||||
<!--end::Body-->
|
||||
</html>
|
||||
@@ -0,0 +1,64 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<!--begin::Head-->
|
||||
<head>
|
||||
<meta name="title" content="WrenchBoard: Find a Freelancer | Sell Professional Services" />
|
||||
<?php include("header_contents.php");?>
|
||||
</head>
|
||||
<!--end::Head-->
|
||||
<!--begin::Body-->
|
||||
<body id="kt_body" class="bg-body">
|
||||
<!--begin::Main-->
|
||||
<!--begin::Root-->
|
||||
<div class="d-flex flex-column flex-root">
|
||||
<!--begin::Authentication - Password reset -->
|
||||
<div class="d-flex flex-column flex-column-fluid bgi-position-y-bottom position-x-center bgi-no-repeat bgi-size-contain bgi-attachment-fixed" style="background-image: url(site3/assets/media/background/home.jpg">
|
||||
<!--begin::Content-->
|
||||
<div class="d-flex flex-center flex-column flex-column-fluid p-10 pb-lg-20">
|
||||
<!--begin::Logo-->
|
||||
<a href="/" class="mb-12">
|
||||
<img alt="WrenchBoard" src="/assets/ext/images/wrenchboard.png" class="h-40px" />
|
||||
</a>
|
||||
<!--end::Logo-->
|
||||
<!--begin::Wrapper-->
|
||||
<div class="w-lg-500px bg-body rounded shadow-sm p-10 p-lg-15 mx-auto">
|
||||
<!--begin::Form-->
|
||||
<form class="form w-100" novalidate="novalidate" action="/" method="POST">
|
||||
<!--begin::Heading-->
|
||||
<div class="text-center mb-10">
|
||||
<!--begin::Title-->
|
||||
<h1 class="text-dark mb-3">Let's verify your email now. </h1>
|
||||
<!--end::Title-->
|
||||
<!--begin::Link-->
|
||||
<div class="text-gray-400 fw-bold fs-4">check your email.</div>
|
||||
<!--end::Link-->
|
||||
</div>
|
||||
<!--begin::Heading-->
|
||||
<!--begin::Input group-->
|
||||
<div class="fv-row mb-10">
|
||||
<label class="form-label fw-bolder text-gray-900 fs-6"><? echo $page_title; ?></label>
|
||||
|
||||
Help us secure your WrenchBoard account by verifying your email registration address. Verification will let you access all of WrenchBoard's features.
|
||||
<hr size="1">
|
||||
If you do not receive the confirmation message within a few minutes of signing up, please check your Junk E-mail folder just in case the confirmation email got delivered there instead of your inbox. If so, select the confirmation message and click Not Junk, which will allow future messages to get through.
|
||||
</div>
|
||||
|
||||
|
||||
<div class="d-flex flex-wrap justify-content-center pb-lg-0">
|
||||
<a href="/" class="btn btn-lg btn-light-primary fw-bolder">Return Home</a>
|
||||
</div>
|
||||
</form>
|
||||
<!--end::Form-->
|
||||
</div>
|
||||
<!--end::Wrapper-->
|
||||
</div>
|
||||
<!--end::Content-->
|
||||
<?php include("footer_links.php");?>
|
||||
</div>
|
||||
</div>
|
||||
<script src="/site3/assets/plugins/global/plugins.bundle.js"></script>
|
||||
<script src="/site3/assets/js/scripts.bundle.js"></script>
|
||||
<script src="assets/js/custom/authentication/password-reset/password-reset.js"></script>
|
||||
</body>
|
||||
<!--end::Body-->
|
||||
</html>
|
||||
@@ -0,0 +1,85 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta name="title" content="WrenchBoard: Find a Freelancer | Sell Professional Services" />
|
||||
<?php include("header_contents.php");?>
|
||||
</head>
|
||||
<body id="kt_body" class="bg-body">
|
||||
<script>
|
||||
(function (i, s, o, g, r, a, m) {
|
||||
i['GoogleAnalyticsObject'] = r;
|
||||
i[r] = i[r] || function () {
|
||||
(i[r].q = i[r].q || []).push(arguments)
|
||||
}, i[r].l = 1 * new Date();
|
||||
a = s.createElement(o),
|
||||
m = s.getElementsByTagName(o)[0];
|
||||
a.async = 1;
|
||||
a.src = g;
|
||||
m.parentNode.insertBefore(a, m)
|
||||
})(window, document, 'script', 'https://www.google-analytics.com/analytics.js', 'ga');
|
||||
|
||||
ga('create', 'UA-54829827-4', 'auto');
|
||||
ga('send', 'pageview');
|
||||
|
||||
</script>
|
||||
<div class="d-flex flex-column flex-root">
|
||||
<div class="d-flex flex-column flex-column-fluid bgi-position-y-bottom position-x-center bgi-no-repeat bgi-size-contain bgi-attachment-fixed" style="background-image: url(site3/assets/media/background/home.jpg">
|
||||
<div class="d-flex flex-center flex-column flex-column-fluid p-10 pb-lg-20">
|
||||
<a href="#" class="mb-12">
|
||||
<img alt="WrenchBoard" src="/assets/ext/images/wrenchboard.png" class="h-40px" />
|
||||
</a>
|
||||
<div class="w-lg-500px bg-body rounded shadow-sm p-10 p-lg-15 mx-auto">
|
||||
<form class="form w-100" action="/login" method="POST">
|
||||
<div class="text-center mb-10">
|
||||
<h1 class="text-dark mb-3">Sign In to WrenchBoard</h1>
|
||||
<div class="text-gray-400 fw-bold fs-4">New Here?
|
||||
<a href="/signup" class="link-primary fw-bolder">Create an Account</a></div>
|
||||
</div>
|
||||
<div class="fv-row mb-10">
|
||||
<label class="form-label fs-6 fw-bolder text-dark">Username/Email</label>
|
||||
<input class="form-control form-control-lg form-control-solid" type="text" name="username" placeholder="Username" value='<?php echo $email; ?>' required="required" readonly autocomplete="off" />
|
||||
</div>
|
||||
<div class="fv-row mb-10">
|
||||
<div class="d-flex flex-stack mb-2">
|
||||
|
||||
</div>
|
||||
<input class="form-control form-control-lg form-control-solid" type="password" placeholder="Password" name="password" required="required" autocomplete="off" />
|
||||
</div>
|
||||
<?php
|
||||
if ( isset($login_message) && $login_message !=''){
|
||||
?>
|
||||
<div class="fv-row mb-10">
|
||||
|
||||
<?php echo isset($login_message)?$login_message:''; ?>
|
||||
<div class="d-flex flex-stack mb-2"></div>
|
||||
</div>
|
||||
<?php
|
||||
}
|
||||
?>
|
||||
|
||||
<div class="text-center">
|
||||
<button type="submit" id="kt_sign_in_submit" class="btn btn-lg btn-primary w-100 mb-5">
|
||||
<span class="indicator-label">Continue</span>
|
||||
<span class="indicator-progress">Please wait...
|
||||
<span class="spinner-border spinner-border-sm align-middle ms-2"></span></span>
|
||||
</button>
|
||||
|
||||
</div>
|
||||
<!--end::Actions-->
|
||||
</form>
|
||||
<!--end::Form-->
|
||||
</div>
|
||||
<!--end::Wrapper-->
|
||||
</div>
|
||||
<!--end::Content-->
|
||||
<!--begin::Footer-->
|
||||
<?php include("footer_links.php");?>
|
||||
</div>
|
||||
</div>
|
||||
<script src="/site3/assets/plugins/global/plugins.bundle.js"></script>
|
||||
<script src="/site3/assets/js/scripts.bundle.js"></script>
|
||||
<script src="/site3/assets/js/custom/home/general.js"></script>
|
||||
</body>
|
||||
<!--end::Body-->
|
||||
</html>
|
||||
|
||||
@@ -0,0 +1,74 @@
|
||||
|
||||
</div>
|
||||
<!--end::Container-->
|
||||
</div>
|
||||
<!--end::Post-->
|
||||
</div>
|
||||
<!--end::Content-->
|
||||
<!--begin::Footer-->
|
||||
<div class="footer py-4 d-flex flex-lg-column" id="kt_footer">
|
||||
<!--begin::Container-->
|
||||
<div class="container-fluid d-flex flex-column flex-md-row align-items-center justify-content-between">
|
||||
<!--begin::Copyright-->
|
||||
<div class="text-dark order-2 order-md-1">
|
||||
<span class="text-muted fw-bold me-1">2022©</span>
|
||||
<a href="/dash" target="_blank" class="text-gray-800 text-hover-primary">WrenchBoard</a>
|
||||
</div>
|
||||
<!--end::Copyright-->
|
||||
<!--begin::Menu-->
|
||||
<ul class="menu menu-gray-600 menu-hover-primary fw-bold order-1">
|
||||
<li class="menu-item">
|
||||
<a href="/dash" target="_blank" class="menu-link px-2">Home</a>
|
||||
</li>
|
||||
<li class="menu-item">
|
||||
<a href="/jobs/jobgrp" target="_blank" class="menu-link px-2">Job Group</a>
|
||||
</li>
|
||||
<li class="menu-item">
|
||||
<a href="/member/yourpage" target="_blank" class="menu-link px-2">My Page</a>
|
||||
</li>
|
||||
<li class="menu-item">
|
||||
<a href="/member/payments" target="_blank" class="menu-link px-2">Payments</a>
|
||||
</li>
|
||||
<li class="menu-item">
|
||||
<a href="/member/faq" target="_blank" class="menu-link px-2">FAQ's</a>
|
||||
</li>
|
||||
<li class="menu-item">
|
||||
<a href="/member/support" target="_blank" class="menu-link px-2">Support</a>
|
||||
</li>
|
||||
</ul>
|
||||
<!--end::Menu-->
|
||||
</div>
|
||||
<!--end::Container-->
|
||||
</div>
|
||||
<!--end::Footer-->
|
||||
</div>
|
||||
<!--end::Wrapper-->
|
||||
</div>
|
||||
<!--end::Page-->
|
||||
</div>
|
||||
<!--end::Root-->
|
||||
|
||||
|
||||
|
||||
<!--end::Modals-->
|
||||
<!--begin::Javascript-->
|
||||
|
||||
<!--begin::Global Javascript Bundle(used by all pages)-->
|
||||
<script src="/site3/assets/plugins/global/plugins.bundle.js"></script>
|
||||
<script src="/site3/assets/js/scripts.bundle.js"></script>
|
||||
<!--begin::Page Custom Javascript(used by this page)-->
|
||||
<script src="/site3/assets/js/widgets.bundle.js"></script>
|
||||
<script src="/site3/assets/js/custom/widgets.js"></script>
|
||||
<script src="/site3/assets/js/custom/utilities/modals/users-search.js"></script>
|
||||
|
||||
|
||||
<script src="/site3/assets/js/custom/fullcalendar/fullcalendar.bundle.js"></script>
|
||||
<script src="/site3/assets/js/custom/datatables/datatables.bundle.js"></script>
|
||||
|
||||
<script src="/site3/assets/js/custom/calendar/calendar.js"></script>
|
||||
<!--end::Page Custom Javascript-->
|
||||
<!--end::Javascript-->
|
||||
</body>
|
||||
<!--end::Body-->
|
||||
|
||||
</html>
|
||||
@@ -0,0 +1,695 @@
|
||||
<!DOCTYPE html>
|
||||
<?php
|
||||
//var_dump($_SERVER);
|
||||
$server_name = 'https://'. $_SERVER['HTTP_HOST'];
|
||||
//exit;
|
||||
?>
|
||||
<html lang="en">
|
||||
<!--begin::Head-->
|
||||
<head>
|
||||
<title>WrenchBoard -<?php echo $_SESSION['firstname']; ?> </title>
|
||||
<meta charset="utf-8" />
|
||||
<meta http-equiv="refresh" content="<?php echo SESSION_TIMEOUT_LOGOUT; ?>;url=/logout">
|
||||
<meta name="description" content="wrenchboard.com is an online marketplace to make money from your skills, find, buy and sell professional services. Connect with freelancers to get work done faster. Trade your freelance services." />
|
||||
<meta name="keywords" content="Online Jobs, Online Workers, work online Nigeria, hire a freelancer, hire freelancers, freelance marketplace, freelancer hire, freelance service, freelance professional services, How to make money online, find workers online, Online Services, digital services, freelancers community in Ghana, freelancers community in Nigeria, freelancer site in Africa, Best freelance website in Africa, Freelance Designers, Photographers, Writers in Nigeria, freelancers, freelance outsourcing in Nigeria, freelance IT services in Nigeria, hire freelancers online in Nigeria, freelance services online in Nigeria, freelance contractor in Nigeria, freelance sites in Nigeria, freelance jobs in Nigeria, freelance projects in Nigeria, freelance jobs online in Nigeria, professional freelancers in Nigeria, buy professional services in Nigeria, professional services jobs, professional business services, professional service providers in Nigeria, freelancing services, freelancing sites in Nigeria, freelancers for hire in Nigeria, freelancer search in Nigeria, search freelancer in Nigeria, find freelancers in Nigeria, Find workers US. Outsource from US to Nigeria, find a freelancer in Nigeria, freelancing projects in Nigeria, web freelancing in Nigeria, outsourcing sites freelancers in Nigeria, website for freelancers in Nigeria, marketplace for freelancers " />
|
||||
<meta name="keywords" content="Metronic, bootstrap, bootstrap 5, Angular, VueJs, React, Laravel, admin themes, web design, figma, web development, free templates, free admin themes, bootstrap theme, bootstrap template, bootstrap dashboard, bootstrap dak mode, bootstrap button, bootstrap datepicker, bootstrap timepicker, fullcalendar, datatables, flaticon" />
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
||||
<meta property="og:locale" content="en_US" />
|
||||
<meta property="og:type" content="article" />
|
||||
<meta property="og:title" content="WrenchBoard: Find a Freelancer | Sell Professional Services" />
|
||||
<meta property="og:url" content="<?=$server_name?>" />
|
||||
<meta property="og:site_name" content="WrenchBoard" />
|
||||
<link rel="canonical" href="<?=$server_name?>" />
|
||||
<link rel="shortcut icon" href="<?=$server_name?>/assets/ext/images/favicon.png">
|
||||
<!--begin::Fonts-->
|
||||
<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Poppins:300,400,500,600,700" />
|
||||
<!--end::Fonts-->
|
||||
<script type="text/javascript" src="/assets/js/core/libraries/jquery.min.js"></script>
|
||||
<!-- script type="text/javascript" src="/assets/js/plugins/ui/fullcalendar/fullcalendar.min.js"></script>
|
||||
<script type="text/javascript" src="/assets/js/pages/extra_fullcalendar.js"></script -->
|
||||
|
||||
<link href="/site3/assets/css/custom/fullcalendar.bundle.css" rel="stylesheet" type="text/css" />
|
||||
<link href="/site3/assets/css/custom/datatables.bundle.css" rel="stylesheet" type="text/css" />
|
||||
|
||||
<!--begin::Global Stylesheets Bundle(used by all pages)-->
|
||||
<link href="<?=$server_name?>/site3/assets/plugins/global/plugins.bundle.css" rel="stylesheet" type="text/css" />
|
||||
<link href="<?=$server_name?>/site3/assets/css/style.bundle.css" rel="stylesheet" type="text/css" />
|
||||
<!--end::Global Stylesheets Bundle-->
|
||||
<style>
|
||||
.h-lg-45px {
|
||||
height: 45px!important;
|
||||
}
|
||||
.header-brand{
|
||||
background-color: #1e1ffd;
|
||||
}
|
||||
.btn.btn-primary {
|
||||
color: #fff;
|
||||
border-color: #4687ba;
|
||||
background-color: #4687ba;
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
<!--end::Head-->
|
||||
|
||||
<!--begin::Body-->
|
||||
<body id="kt_body" class="header-tablet-and-mobile-fixed aside-enabled">
|
||||
<!--begin::Main-->
|
||||
<!--begin::Root-->
|
||||
<div class="d-flex flex-column flex-root">
|
||||
<!--begin::Page-->
|
||||
<div class="page d-flex flex-row flex-column-fluid">
|
||||
<!--begin::Aside-->
|
||||
<div id="kt_aside" class="aside" data-kt-drawer="true" data-kt-drawer-name="aside" data-kt-drawer-activate="{default: true, lg: false}" data-kt-drawer-overlay="true" data-kt-drawer-width="{default:'200px', '300px': '250px'}" data-kt-drawer-direction="start" data-kt-drawer-toggle="#kt_aside_mobile_toggle">
|
||||
<!--begin::Aside Toolbarl-->
|
||||
<div class="aside-toolbar flex-column-auto" id="kt_aside_toolbar">
|
||||
<!--begin::Aside user-->
|
||||
<!--begin::User-->
|
||||
<div class="aside-user d-flex align-items-sm-center justify-content-center py-5">
|
||||
<!--begin::Symbol-->
|
||||
<div class="symbol symbol-50px"><?php if (array_key_exists('profile_picture', $_SESSION)) { ?>
|
||||
<img src="<? echo $_SESSION['profile_picture']; ?>" alt="" /><?php } ?>
|
||||
</div>
|
||||
<!--end::Symbol-->
|
||||
<!--begin::Wrapper-->
|
||||
<div class="aside-user-info flex-row-fluid flex-wrap ms-5">
|
||||
<!--begin::Section-->
|
||||
<div class="d-flex">
|
||||
<!--begin::Info-->
|
||||
<div class="flex-grow-1 me-2">
|
||||
<!--begin::Username-->
|
||||
<a href="#" class="text-white text-hover-primary fs-6 fw-bold"><?php echo $firstname; ?></a>
|
||||
<!--end::Username-->
|
||||
<!--begin::Description-->
|
||||
<span class="text-gray-600 fw-bold d-block fs-8 mb-1"><hr></span>
|
||||
<!--end::Description-->
|
||||
<!--begin::Label-->
|
||||
<div class="d-flex align-items-center text-success fs-9">
|
||||
<span class="bullet bullet-dot bg-success me-1"></span>online</div>
|
||||
<!--end::Label-->
|
||||
</div>
|
||||
<!--end::Info-->
|
||||
<!--begin::User menu-->
|
||||
<div class="me-n2">
|
||||
<!--begin::Action-->
|
||||
<a href="#" class="btn btn-icon btn-sm btn-active-color-primary mt-n2" data-kt-menu-trigger="click" data-kt-menu-placement="bottom-start" data-kt-menu-overflow="true">
|
||||
<!--begin::Svg Icon | path: icons/duotune/coding/cod001.svg-->
|
||||
<span class="svg-icon svg-icon-muted svg-icon-1">
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none">
|
||||
<path opacity="0.3" d="M22.1 11.5V12.6C22.1 13.2 21.7 13.6 21.2 13.7L19.9 13.9C19.7 14.7 19.4 15.5 18.9 16.2L19.7 17.2999C20 17.6999 20 18.3999 19.6 18.7999L18.8 19.6C18.4 20 17.8 20 17.3 19.7L16.2 18.9C15.5 19.3 14.7 19.7 13.9 19.9L13.7 21.2C13.6 21.7 13.1 22.1 12.6 22.1H11.5C10.9 22.1 10.5 21.7 10.4 21.2L10.2 19.9C9.4 19.7 8.6 19.4 7.9 18.9L6.8 19.7C6.4 20 5.7 20 5.3 19.6L4.5 18.7999C4.1 18.3999 4.1 17.7999 4.4 17.2999L5.2 16.2C4.8 15.5 4.4 14.7 4.2 13.9L2.9 13.7C2.4 13.6 2 13.1 2 12.6V11.5C2 10.9 2.4 10.5 2.9 10.4L4.2 10.2C4.4 9.39995 4.7 8.60002 5.2 7.90002L4.4 6.79993C4.1 6.39993 4.1 5.69993 4.5 5.29993L5.3 4.5C5.7 4.1 6.3 4.10002 6.8 4.40002L7.9 5.19995C8.6 4.79995 9.4 4.39995 10.2 4.19995L10.4 2.90002C10.5 2.40002 11 2 11.5 2H12.6C13.2 2 13.6 2.40002 13.7 2.90002L13.9 4.19995C14.7 4.39995 15.5 4.69995 16.2 5.19995L17.3 4.40002C17.7 4.10002 18.4 4.1 18.8 4.5L19.6 5.29993C20 5.69993 20 6.29993 19.7 6.79993L18.9 7.90002C19.3 8.60002 19.7 9.39995 19.9 10.2L21.2 10.4C21.7 10.5 22.1 11 22.1 11.5ZM12.1 8.59998C10.2 8.59998 8.6 10.2 8.6 12.1C8.6 14 10.2 15.6 12.1 15.6C14 15.6 15.6 14 15.6 12.1C15.6 10.2 14 8.59998 12.1 8.59998Z" fill="black" />
|
||||
<path d="M17.1 12.1C17.1 14.9 14.9 17.1 12.1 17.1C9.30001 17.1 7.10001 14.9 7.10001 12.1C7.10001 9.29998 9.30001 7.09998 12.1 7.09998C14.9 7.09998 17.1 9.29998 17.1 12.1ZM12.1 10.1C11 10.1 10.1 11 10.1 12.1C10.1 13.2 11 14.1 12.1 14.1C13.2 14.1 14.1 13.2 14.1 12.1C14.1 11 13.2 10.1 12.1 10.1Z" fill="black" />
|
||||
</svg>
|
||||
</span>
|
||||
<!--end::Svg Icon-->
|
||||
</a>
|
||||
<!--begin::User account menu-->
|
||||
<div class="menu menu-sub menu-sub-dropdown menu-column menu-rounded menu-gray-800 menu-state-bg menu-state-primary fw-bold py-4 fs-6 w-275px" data-kt-menu="true">
|
||||
<!--begin::Menu item-->
|
||||
<div class="menu-item px-3">
|
||||
<div class="menu-content d-flex align-items-center px-3">
|
||||
<!--begin::Avatar-->
|
||||
<div class="symbol symbol-50px me-5">
|
||||
<img alt="Logo" src="<?=$server_name?>/assets/ext/images/wrenchboard.png" />
|
||||
</div>
|
||||
<!--end::Avatar-->
|
||||
<!--begin::Username-->
|
||||
<div class="d-flex flex-column">
|
||||
<div class="fw-bolder d-flex align-items-center fs-5"><?php echo $firstname; ?>
|
||||
<span class="badge badge-light-success fw-bolder fs-8 px-2 py-1 ms-2"></span></div>
|
||||
<a href="/" class="fw-bold text-muted text-hover-primary fs-7"><?=$_SESSION['username']?></a>
|
||||
</div>
|
||||
<!--end::Username-->
|
||||
</div>
|
||||
</div>
|
||||
<!--end::Menu item-->
|
||||
<!--begin::Menu separator-->
|
||||
<div class="separator my-2"></div>
|
||||
<!--end::Menu separator-->
|
||||
<!--begin::Menu item-->
|
||||
<div class="menu-item px-5">
|
||||
<a href="/member/profile" class="menu-link px-5">My Profile</a>
|
||||
</div>
|
||||
<!--end::Menu item-->
|
||||
<!--begin::Menu item-->
|
||||
<div class="menu-item px-5">
|
||||
<a href="/member/balance" class="menu-link px-5">
|
||||
<span class="menu-text">My Wallet</span>
|
||||
</a>
|
||||
</div>
|
||||
<!--end::Menu item-->
|
||||
<!--begin::Menu item-->
|
||||
<div class="menu-item px-5" data-kt-menu-trigger="hover" data-kt-menu-placement="right-start">
|
||||
<a href="#" class="menu-link px-5">
|
||||
<span class="menu-title">Reports</span>
|
||||
<span class="menu-arrow"></span>
|
||||
</a>
|
||||
<!--begin::Menu sub-->
|
||||
<div class="menu-sub menu-sub-dropdown w-175px py-4">
|
||||
<!--begin::Menu item-->
|
||||
<div class="menu-item px-3">
|
||||
<a href="/refer/refpage" class="menu-link px-5">Referrals</a>
|
||||
</div>
|
||||
<!--end::Menu item-->
|
||||
<!--begin::Menu item-->
|
||||
<div class="menu-item px-3">
|
||||
<a href="#" class="menu-link px-5">Billing</a>
|
||||
</div>
|
||||
<!--end::Menu item-->
|
||||
<!--begin::Menu item-->
|
||||
<div class="menu-item px-3">
|
||||
<a href="/member/payments" class="menu-link px-5">Payments</a>
|
||||
</div>
|
||||
<!--end::Menu item-->
|
||||
<!--begin::Menu item-->
|
||||
<div class="menu-item px-3">
|
||||
<a href="/proj/complete" class="menu-link d-flex flex-stack px-5">Completed Jobs
|
||||
<i class="fas fa-exclamation-circle ms-2 fs-7" data-bs-toggle="tooltip" title="View your statements"></i></a>
|
||||
</div>
|
||||
<!--end::Menu item-->
|
||||
<!--begin::Menu item-->
|
||||
<div class="menu-item px-3">
|
||||
<a href="/proj/mycomplete" class="menu-link d-flex flex-stack px-5">Previous Tasks
|
||||
<i class="fas fa-exclamation-circle ms-2 fs-7" data-bs-toggle="tooltip" title="View your statements"></i></a>
|
||||
</div>
|
||||
<!--end::Menu item-->
|
||||
|
||||
<!--begin::Menu separator-->
|
||||
<div class="separator my-2"></div>
|
||||
<!--end::Menu separator-->
|
||||
<!--begin::Menu item-->
|
||||
<div class="menu-item px-3">
|
||||
<div class="menu-content px-3">
|
||||
<label class="form-check form-switch form-check-custom form-check-solid">
|
||||
<input class="form-check-input w-30px h-20px" type="checkbox" value="1" checked="checked" name="notifications" />
|
||||
<span class="form-check-label text-muted fs-7">Notifications</span>
|
||||
</label>
|
||||
</div>
|
||||
</div>
|
||||
<!--end::Menu item-->
|
||||
</div>
|
||||
<!--end::Menu sub-->
|
||||
</div>
|
||||
<!--end::Menu item-->
|
||||
<!--begin::Menu item-->
|
||||
<div class="menu-item px-5">
|
||||
<a href="" class="menu-link px-5">My Statements</a>
|
||||
</div>
|
||||
<!--end::Menu item-->
|
||||
<!--begin::Menu separator-->
|
||||
<div class="separator my-2"></div>
|
||||
<!--end::Menu separator-->
|
||||
<!--begin::Menu item-->
|
||||
<div class="menu-item px-5" data-kt-menu-trigger="hover" data-kt-menu-placement="right-start">
|
||||
<a href="#" class="menu-link px-5">
|
||||
<span class="menu-title position-relative">Language
|
||||
<span class="fs-8 rounded bg-light px-3 py-2 position-absolute translate-middle-y top-50 end-0">English
|
||||
<img class="w-15px h-15px rounded-1 ms-2" src="<?=$server_name?>/site3/assets/media/flags/united-states.svg" alt="" /></span></span>
|
||||
</a>
|
||||
<!--begin::Menu sub-->
|
||||
<div class="menu-sub menu-sub-dropdown w-175px py-4">
|
||||
<!--begin::Menu item-->
|
||||
<div class="menu-item px-3">
|
||||
<a href="" class="menu-link d-flex px-5 active">
|
||||
<span class="symbol symbol-20px me-4">
|
||||
<img class="rounded-1" src="<?=$server_name?>/site3/assets/media/flags/united-states.svg" alt="" />
|
||||
</span>English</a>
|
||||
</div>
|
||||
|
||||
<!--end::Menu item-->
|
||||
</div>
|
||||
<!--end::Menu sub-->
|
||||
</div>
|
||||
<!--end::Menu item-->
|
||||
<!--begin::Menu item-->
|
||||
<div class="menu-item px-5 my-1">
|
||||
<a href="/member/settings" class="menu-link px-5">Account Settings</a>
|
||||
</div>
|
||||
<!--end::Menu item-->
|
||||
<!--begin::Menu item-->
|
||||
<div class="menu-item px-5">
|
||||
<a href="/logout" class="menu-link px-5">Sign Out</a>
|
||||
</div>
|
||||
<!--end::Menu item-->
|
||||
<!--begin::Menu separator-->
|
||||
<div class="separator my-2"></div>
|
||||
<!--end::Menu separator-->
|
||||
<!--begin::Menu item-->
|
||||
|
||||
<!--end::Menu item-->
|
||||
</div>
|
||||
<!--end::User account menu-->
|
||||
<!--end::Action-->
|
||||
</div>
|
||||
<!--end::User menu-->
|
||||
</div>
|
||||
<!--end::Section-->
|
||||
</div>
|
||||
<!--end::Wrapper-->
|
||||
</div>
|
||||
<!--end::User-->
|
||||
|
||||
<!--end::Aside user-->
|
||||
</div>
|
||||
<!--end::Aside Toolbarl-->
|
||||
<!--begin::Aside menu-->
|
||||
<div class="aside-menu flex-column-fluid">
|
||||
<!--begin::Aside Menu-->
|
||||
<div class="hover-scroll-overlay-y px-2 my-5 my-lg-5" id="kt_aside_menu_wrapper" data-kt-scroll="true" data-kt-scroll-height="auto" data-kt-scroll-dependencies="{default: '#kt_aside_toolbar, #kt_aside_footer', lg: '#kt_header, #kt_aside_toolbar, #kt_aside_footer'}" data-kt-scroll-wrappers="#kt_aside_menu" data-kt-scroll-offset="5px">
|
||||
<!--begin::Menu-->
|
||||
<div class="menu menu-column menu-title-gray-800 menu-state-title-primary menu-state-icon-primary menu-state-bullet-primary menu-arrow-gray-500" id="#kt_aside_menu" data-kt-menu="true">
|
||||
|
||||
<a href="/dash">
|
||||
<div class="menu-item">
|
||||
<span class="menu-link">
|
||||
<span class="menu-icon">
|
||||
<!--begin::Svg Icon | path: icons/duotune/general/gen025.svg-->
|
||||
<span class="svg-icon svg-icon-2">
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none">
|
||||
<rect x="2" y="2" width="9" height="9" rx="2" fill="black" />
|
||||
<rect opacity="0.3" x="13" y="2" width="9" height="9" rx="2" fill="black" />
|
||||
<rect opacity="0.3" x="13" y="13" width="9" height="9" rx="2" fill="black" />
|
||||
<rect opacity="0.3" x="2" y="13" width="9" height="9" rx="2" fill="black" />
|
||||
</svg>
|
||||
</span>
|
||||
<!--end::Svg Icon-->
|
||||
</span>
|
||||
<span class="menu-title">Dashboard</span>
|
||||
</span>
|
||||
</div>
|
||||
</a>
|
||||
|
||||
<a href="/jobs/market">
|
||||
<div class="menu-item">
|
||||
<span class="menu-link">
|
||||
<span class="menu-icon">
|
||||
<!--begin::Svg Icon | path: icons/duotune/general/gen025.svg-->
|
||||
<span class="svg-icon svg-icon-2">
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none">
|
||||
<rect x="2" y="2" width="9" height="9" rx="2" fill="black" />
|
||||
<rect opacity="0.3" x="13" y="2" width="9" height="9" rx="2" fill="black" />
|
||||
<rect opacity="0.3" x="13" y="13" width="9" height="9" rx="2" fill="black" />
|
||||
<rect opacity="0.3" x="2" y="13" width="9" height="9" rx="2" fill="black" />
|
||||
</svg>
|
||||
</span>
|
||||
<!--end::Svg Icon-->
|
||||
</span>
|
||||
<span class="menu-title">Market</span>
|
||||
</span>
|
||||
</div>
|
||||
</a>
|
||||
|
||||
|
||||
<a href="/member/balance">
|
||||
<div class="menu-item">
|
||||
<span class="menu-link">
|
||||
<span class="menu-icon">
|
||||
<!--begin::Svg Icon | path: icons/duotune/general/gen025.svg-->
|
||||
<span class="svg-icon svg-icon-2">
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none">
|
||||
<rect x="2" y="2" width="9" height="9" rx="2" fill="black" />
|
||||
<rect opacity="0.3" x="13" y="2" width="9" height="9" rx="2" fill="black" />
|
||||
<rect opacity="0.3" x="13" y="13" width="9" height="9" rx="2" fill="black" />
|
||||
<rect opacity="0.3" x="2" y="13" width="9" height="9" rx="2" fill="black" />
|
||||
</svg>
|
||||
</span>
|
||||
<!--end::Svg Icon-->
|
||||
</span>
|
||||
<span class="menu-title">my Wallet</span>
|
||||
</span>
|
||||
</div>
|
||||
</a>
|
||||
|
||||
|
||||
<a href="/member/schedule">
|
||||
<div class="menu-item">
|
||||
<span class="menu-link">
|
||||
<span class="menu-icon">
|
||||
<!--begin::Svg Icon | path: icons/duotune/general/gen025.svg-->
|
||||
<span class="svg-icon svg-icon-2">
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none">
|
||||
<rect x="2" y="2" width="9" height="9" rx="2" fill="black" />
|
||||
<rect opacity="0.3" x="13" y="2" width="9" height="9" rx="2" fill="black" />
|
||||
<rect opacity="0.3" x="13" y="13" width="9" height="9" rx="2" fill="black" />
|
||||
<rect opacity="0.3" x="2" y="13" width="9" height="9" rx="2" fill="black" />
|
||||
</svg>
|
||||
</span>
|
||||
<!--end::Svg Icon-->
|
||||
</span>
|
||||
<span class="menu-title">Calendar</span>
|
||||
</span>
|
||||
</div>
|
||||
</a>
|
||||
|
||||
<div class="menu-item">
|
||||
<div class="menu-content pt-8 pb-2">
|
||||
<span class="menu-section text-muted text-uppercase fs-8 ls-1">Activities</span>
|
||||
</div>
|
||||
</div>
|
||||
<a href="/proj/active" >
|
||||
<div class="menu-item">
|
||||
<span class="menu-link">
|
||||
|
||||
|
||||
|
||||
<span class="menu-icon">
|
||||
<!--begin::Svg Icon | path: icons/duotune/ecommerce/ecm007.svg-->
|
||||
<span class="svg-icon svg-icon-2">
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none">
|
||||
<path d="M21 9V11C21 11.6 20.6 12 20 12H14V8H20C20.6 8 21 8.4 21 9ZM10 8H4C3.4 8 3 8.4 3 9V11C3 11.6 3.4 12 4 12H10V8Z" fill="black" />
|
||||
<path d="M15 2C13.3 2 12 3.3 12 5V8H15C16.7 8 18 6.7 18 5C18 3.3 16.7 2 15 2Z" fill="black" />
|
||||
<path opacity="0.3" d="M9 2C10.7 2 12 3.3 12 5V8H9C7.3 8 6 6.7 6 5C6 3.3 7.3 2 9 2ZM4 12V21C4 21.6 4.4 22 5 22H10V12H4ZM20 12V21C20 21.6 19.6 22 19 22H14V12H20Z" fill="black" />
|
||||
</svg>
|
||||
</span>
|
||||
<!--end::Svg Icon-->
|
||||
</span>
|
||||
<span class="menu-title"> Active Job(s)</span>
|
||||
</span>
|
||||
</div>
|
||||
</a>
|
||||
|
||||
<a href="/member/yourpage" >
|
||||
<div class="menu-item">
|
||||
<span class="menu-link">
|
||||
<span class="menu-icon">
|
||||
<!--begin::Svg Icon | path: icons/duotune/communication/com013.svg-->
|
||||
<span class="svg-icon svg-icon-2">
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none">
|
||||
<path d="M6.28548 15.0861C7.34369 13.1814 9.35142 12 11.5304 12H12.4696C14.6486 12 16.6563 13.1814 17.7145 15.0861L19.3493 18.0287C20.0899 19.3618 19.1259 21 17.601 21H6.39903C4.87406 21 3.91012 19.3618 4.65071 18.0287L6.28548 15.0861Z" fill="black" />
|
||||
<rect opacity="0.3" x="8" y="3" width="8" height="8" rx="4" fill="black" />
|
||||
</svg>
|
||||
</span>
|
||||
<!--end::Svg Icon-->
|
||||
</span>
|
||||
<span class="menu-title">My Page</span>
|
||||
</span>
|
||||
</div>
|
||||
</a>
|
||||
|
||||
<a href="/member/message" >
|
||||
<div class="menu-item">
|
||||
<span class="menu-link">
|
||||
<span class="menu-icon">
|
||||
<!--begin::Svg Icon | path: icons/duotune/communication/com013.svg-->
|
||||
<span class="svg-icon svg-icon-2">
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none">
|
||||
<path d="M6.28548 15.0861C7.34369 13.1814 9.35142 12 11.5304 12H12.4696C14.6486 12 16.6563 13.1814 17.7145 15.0861L19.3493 18.0287C20.0899 19.3618 19.1259 21 17.601 21H6.39903C4.87406 21 3.91012 19.3618 4.65071 18.0287L6.28548 15.0861Z" fill="black" />
|
||||
<rect opacity="0.3" x="8" y="3" width="8" height="8" rx="4" fill="black" />
|
||||
</svg>
|
||||
</span>
|
||||
<!--end::Svg Icon-->
|
||||
</span>
|
||||
<span class="menu-title">Messages</span>
|
||||
</span>
|
||||
</div>
|
||||
</a>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<div class="menu-item">
|
||||
<div class="menu-content pt-8 pb-2">
|
||||
<span class="menu-section text-muted text-uppercase fs-8 ls-1">Job(s) Management</span>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<?php
|
||||
if (isset($_SESSION["post_jobs"]) && $_SESSION["post_jobs"] != '') {
|
||||
?>
|
||||
<a href="/jobs/manage">
|
||||
<div class="menu-item">
|
||||
<span class="menu-link">
|
||||
<span class="menu-icon">
|
||||
<!--begin::Svg Icon | path: icons/duotune/general/gen002.svg-->
|
||||
<span class="svg-icon svg-icon-2">
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none">
|
||||
<path opacity="0.3" d="M4.05424 15.1982C8.34524 7.76818 13.5782 3.26318 20.9282 2.01418C21.0729 1.98837 21.2216 1.99789 21.3618 2.04193C21.502 2.08597 21.6294 2.16323 21.7333 2.26712C21.8372 2.37101 21.9144 2.49846 21.9585 2.63863C22.0025 2.7788 22.012 2.92754 21.9862 3.07218C20.7372 10.4222 16.2322 15.6552 8.80224 19.9462L4.05424 15.1982ZM3.81924 17.3372L2.63324 20.4482C2.58427 20.5765 2.5735 20.7163 2.6022 20.8507C2.63091 20.9851 2.69788 21.1082 2.79503 21.2054C2.89218 21.3025 3.01536 21.3695 3.14972 21.3982C3.28408 21.4269 3.42387 21.4161 3.55224 21.3672L6.66524 20.1802L3.81924 17.3372ZM16.5002 5.99818C16.2036 5.99818 15.9136 6.08615 15.6669 6.25097C15.4202 6.41579 15.228 6.65006 15.1144 6.92415C15.0009 7.19824 14.9712 7.49984 15.0291 7.79081C15.0869 8.08178 15.2298 8.34906 15.4396 8.55884C15.6494 8.76862 15.9166 8.91148 16.2076 8.96935C16.4986 9.02723 16.8002 8.99753 17.0743 8.884C17.3484 8.77046 17.5826 8.5782 17.7474 8.33153C17.9123 8.08486 18.0002 7.79485 18.0002 7.49818C18.0002 7.10035 17.8422 6.71882 17.5609 6.43752C17.2796 6.15621 16.8981 5.99818 16.5002 5.99818Z" fill="black" />
|
||||
<path d="M4.05423 15.1982L2.24723 13.3912C2.15505 13.299 2.08547 13.1867 2.04395 13.0632C2.00243 12.9396 1.9901 12.8081 2.00793 12.679C2.02575 12.5498 2.07325 12.4266 2.14669 12.3189C2.22013 12.2112 2.31752 12.1219 2.43123 12.0582L9.15323 8.28918C7.17353 10.3717 5.4607 12.6926 4.05423 15.1982ZM8.80023 19.9442L10.6072 21.7512C10.6994 21.8434 10.8117 21.9129 10.9352 21.9545C11.0588 21.996 11.1903 22.0083 11.3195 21.9905C11.4486 21.9727 11.5718 21.9252 11.6795 21.8517C11.7872 21.7783 11.8765 21.6809 11.9402 21.5672L15.7092 14.8442C13.6269 16.8245 11.3061 18.5377 8.80023 19.9442ZM7.04023 18.1832L12.5832 12.6402C12.7381 12.4759 12.8228 12.2577 12.8195 12.032C12.8161 11.8063 12.725 11.5907 12.5653 11.4311C12.4057 11.2714 12.1901 11.1803 11.9644 11.1769C11.7387 11.1736 11.5205 11.2583 11.3562 11.4132L5.81323 16.9562L7.04023 18.1832Z" fill="black" />
|
||||
</svg>
|
||||
</span>
|
||||
<!--end::Svg Icon-->
|
||||
</span>
|
||||
<span class="menu-title">My Jobs</span>
|
||||
</span>
|
||||
</div>
|
||||
</a>
|
||||
<?php
|
||||
if ($_SESSION["active_offers_count"] > 0) {
|
||||
?>
|
||||
<<a href="/jobs/pendingoffer">
|
||||
<div class="menu-item">
|
||||
<span class="menu-link">
|
||||
<span class="menu-icon">
|
||||
<!--begin::Svg Icon | path: icons/duotune/general/gen002.svg-->
|
||||
<span class="svg-icon svg-icon-2">
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none">
|
||||
<path opacity="0.3" d="M4.05424 15.1982C8.34524 7.76818 13.5782 3.26318 20.9282 2.01418C21.0729 1.98837 21.2216 1.99789 21.3618 2.04193C21.502 2.08597 21.6294 2.16323 21.7333 2.26712C21.8372 2.37101 21.9144 2.49846 21.9585 2.63863C22.0025 2.7788 22.012 2.92754 21.9862 3.07218C20.7372 10.4222 16.2322 15.6552 8.80224 19.9462L4.05424 15.1982ZM3.81924 17.3372L2.63324 20.4482C2.58427 20.5765 2.5735 20.7163 2.6022 20.8507C2.63091 20.9851 2.69788 21.1082 2.79503 21.2054C2.89218 21.3025 3.01536 21.3695 3.14972 21.3982C3.28408 21.4269 3.42387 21.4161 3.55224 21.3672L6.66524 20.1802L3.81924 17.3372ZM16.5002 5.99818C16.2036 5.99818 15.9136 6.08615 15.6669 6.25097C15.4202 6.41579 15.228 6.65006 15.1144 6.92415C15.0009 7.19824 14.9712 7.49984 15.0291 7.79081C15.0869 8.08178 15.2298 8.34906 15.4396 8.55884C15.6494 8.76862 15.9166 8.91148 16.2076 8.96935C16.4986 9.02723 16.8002 8.99753 17.0743 8.884C17.3484 8.77046 17.5826 8.5782 17.7474 8.33153C17.9123 8.08486 18.0002 7.79485 18.0002 7.49818C18.0002 7.10035 17.8422 6.71882 17.5609 6.43752C17.2796 6.15621 16.8981 5.99818 16.5002 5.99818Z" fill="black" />
|
||||
<path d="M4.05423 15.1982L2.24723 13.3912C2.15505 13.299 2.08547 13.1867 2.04395 13.0632C2.00243 12.9396 1.9901 12.8081 2.00793 12.679C2.02575 12.5498 2.07325 12.4266 2.14669 12.3189C2.22013 12.2112 2.31752 12.1219 2.43123 12.0582L9.15323 8.28918C7.17353 10.3717 5.4607 12.6926 4.05423 15.1982ZM8.80023 19.9442L10.6072 21.7512C10.6994 21.8434 10.8117 21.9129 10.9352 21.9545C11.0588 21.996 11.1903 22.0083 11.3195 21.9905C11.4486 21.9727 11.5718 21.9252 11.6795 21.8517C11.7872 21.7783 11.8765 21.6809 11.9402 21.5672L15.7092 14.8442C13.6269 16.8245 11.3061 18.5377 8.80023 19.9442ZM7.04023 18.1832L12.5832 12.6402C12.7381 12.4759 12.8228 12.2577 12.8195 12.032C12.8161 11.8063 12.725 11.5907 12.5653 11.4311C12.4057 11.2714 12.1901 11.1803 11.9644 11.1769C11.7387 11.1736 11.5205 11.2583 11.3562 11.4132L5.81323 16.9562L7.04023 18.1832Z" fill="black" />
|
||||
</svg>
|
||||
</span>
|
||||
<!--end::Svg Icon-->
|
||||
</span>
|
||||
<span class="menu-title">my Market Jobs[<?php echo $_SESSION["active_offers_count"]; ?>]</span>
|
||||
</span>
|
||||
</div>
|
||||
|
||||
</a>
|
||||
<?
|
||||
}
|
||||
?>
|
||||
<a href="/jobs/offerinterest">
|
||||
<div class="menu-item">
|
||||
<span class="menu-link">
|
||||
<span class="menu-icon">
|
||||
<!--begin::Svg Icon | path: icons/duotune/graphs/gra006.svg-->
|
||||
<span class="svg-icon svg-icon-2">
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none">
|
||||
<path d="M13 5.91517C15.8 6.41517 18 8.81519 18 11.8152C18 12.5152 17.9 13.2152 17.6 13.9152L20.1 15.3152C20.6 15.6152 21.4 15.4152 21.6 14.8152C21.9 13.9152 22.1 12.9152 22.1 11.8152C22.1 7.01519 18.8 3.11521 14.3 2.01521C13.7 1.91521 13.1 2.31521 13.1 3.01521V5.91517H13Z" fill="black" />
|
||||
<path opacity="0.3" d="M19.1 17.0152C19.7 17.3152 19.8 18.1152 19.3 18.5152C17.5 20.5152 14.9 21.7152 12 21.7152C9.1 21.7152 6.50001 20.5152 4.70001 18.5152C4.30001 18.0152 4.39999 17.3152 4.89999 17.0152L7.39999 15.6152C8.49999 16.9152 10.2 17.8152 12 17.8152C13.8 17.8152 15.5 17.0152 16.6 15.6152L19.1 17.0152ZM6.39999 13.9151C6.19999 13.2151 6 12.5152 6 11.8152C6 8.81517 8.2 6.41515 11 5.91515V3.01519C11 2.41519 10.4 1.91519 9.79999 2.01519C5.29999 3.01519 2 7.01517 2 11.8152C2 12.8152 2.2 13.8152 2.5 14.8152C2.7 15.4152 3.4 15.7152 4 15.3152L6.39999 13.9151Z" fill="black" />
|
||||
</svg>
|
||||
</span>
|
||||
<!--end::Svg Icon-->
|
||||
</span>
|
||||
<span class="menu-title">Flagged Interest</span>
|
||||
</span>
|
||||
</div></a>
|
||||
<?php
|
||||
} else {
|
||||
?>
|
||||
<a href="/jobs/jobagree">
|
||||
<div class="menu-item">
|
||||
<span class="menu-link">
|
||||
<span class="menu-icon">
|
||||
<!--begin::Svg Icon | path: icons/duotune/ecommerce/ecm001.svg-->
|
||||
<span class="svg-icon svg-icon-2">
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none">
|
||||
<path opacity="0.3" d="M18.041 22.041C18.5932 22.041 19.041 21.5932 19.041 21.041C19.041 20.4887 18.5932 20.041 18.041 20.041C17.4887 20.041 17.041 20.4887 17.041 21.041C17.041 21.5932 17.4887 22.041 18.041 22.041Z" fill="black" />
|
||||
<path opacity="0.3" d="M6.04095 22.041C6.59324 22.041 7.04095 21.5932 7.04095 21.041C7.04095 20.4887 6.59324 20.041 6.04095 20.041C5.48867 20.041 5.04095 20.4887 5.04095 21.041C5.04095 21.5932 5.48867 22.041 6.04095 22.041Z" fill="black" />
|
||||
<path opacity="0.3" d="M7.04095 16.041L19.1409 15.1409C19.7409 15.1409 20.141 14.7409 20.341 14.1409L21.7409 8.34094C21.9409 7.64094 21.4409 7.04095 20.7409 7.04095H5.44095L7.04095 16.041Z" fill="black" />
|
||||
<path d="M19.041 20.041H5.04096C4.74096 20.041 4.34095 19.841 4.14095 19.541C3.94095 19.241 3.94095 18.841 4.14095 18.541L6.04096 14.841L4.14095 4.64095L2.54096 3.84096C2.04096 3.64096 1.84095 3.04097 2.14095 2.54097C2.34095 2.04097 2.94096 1.84095 3.44096 2.14095L5.44096 3.14095C5.74096 3.24095 5.94096 3.54096 5.94096 3.84096L7.94096 14.841C7.94096 15.041 7.94095 15.241 7.84095 15.441L6.54096 18.041H19.041C19.641 18.041 20.041 18.441 20.041 19.041C20.041 19.641 19.641 20.041 19.041 20.041Z" fill="black" />
|
||||
</svg>
|
||||
</span>
|
||||
<!--end::Svg Icon-->
|
||||
</span>
|
||||
<span class="menu-title">Post/Create Job</span>
|
||||
</span>
|
||||
</div>
|
||||
</a>
|
||||
|
||||
<?php
|
||||
}
|
||||
?>
|
||||
|
||||
<div class="menu-item">
|
||||
<div class="menu-content">
|
||||
<div class="separator mx-1 my-4"></div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="menu-item">
|
||||
<a class="menu-link" href="/res/media">
|
||||
<span class="menu-icon">
|
||||
<!--begin::Svg Icon | path: icons/duotune/coding/cod003.svg-->
|
||||
<span class="svg-icon svg-icon-2">
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none">
|
||||
<path d="M16.95 18.9688C16.75 18.9688 16.55 18.8688 16.35 18.7688C15.85 18.4688 15.75 17.8688 16.05 17.3688L19.65 11.9688L16.05 6.56876C15.75 6.06876 15.85 5.46873 16.35 5.16873C16.85 4.86873 17.45 4.96878 17.75 5.46878L21.75 11.4688C21.95 11.7688 21.95 12.2688 21.75 12.5688L17.75 18.5688C17.55 18.7688 17.25 18.9688 16.95 18.9688ZM7.55001 18.7688C8.05001 18.4688 8.15 17.8688 7.85 17.3688L4.25001 11.9688L7.85 6.56876C8.15 6.06876 8.05001 5.46873 7.55001 5.16873C7.05001 4.86873 6.45 4.96878 6.15 5.46878L2.15 11.4688C1.95 11.7688 1.95 12.2688 2.15 12.5688L6.15 18.5688C6.35 18.8688 6.65 18.9688 6.95 18.9688C7.15 18.9688 7.35001 18.8688 7.55001 18.7688Z" fill="black" />
|
||||
<path opacity="0.3" d="M10.45 18.9687C10.35 18.9687 10.25 18.9687 10.25 18.9687C9.75 18.8687 9.35 18.2688 9.55 17.7688L12.55 5.76878C12.65 5.26878 13.25 4.8687 13.75 5.0687C14.25 5.1687 14.65 5.76878 14.45 6.26878L11.45 18.2688C11.35 18.6688 10.85 18.9687 10.45 18.9687Z" fill="black" />
|
||||
</svg>
|
||||
</span>
|
||||
<!--end::Svg Icon-->
|
||||
</span>
|
||||
<span class="menu-title">Skill Videos</span>
|
||||
</a>
|
||||
|
||||
<a class="menu-link" href="/res/prints">
|
||||
<span class="menu-icon">
|
||||
<!--begin::Svg Icon | path: icons/duotune/coding/cod003.svg-->
|
||||
<span class="svg-icon svg-icon-2">
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none">
|
||||
<path d="M16.95 18.9688C16.75 18.9688 16.55 18.8688 16.35 18.7688C15.85 18.4688 15.75 17.8688 16.05 17.3688L19.65 11.9688L16.05 6.56876C15.75 6.06876 15.85 5.46873 16.35 5.16873C16.85 4.86873 17.45 4.96878 17.75 5.46878L21.75 11.4688C21.95 11.7688 21.95 12.2688 21.75 12.5688L17.75 18.5688C17.55 18.7688 17.25 18.9688 16.95 18.9688ZM7.55001 18.7688C8.05001 18.4688 8.15 17.8688 7.85 17.3688L4.25001 11.9688L7.85 6.56876C8.15 6.06876 8.05001 5.46873 7.55001 5.16873C7.05001 4.86873 6.45 4.96878 6.15 5.46878L2.15 11.4688C1.95 11.7688 1.95 12.2688 2.15 12.5688L6.15 18.5688C6.35 18.8688 6.65 18.9688 6.95 18.9688C7.15 18.9688 7.35001 18.8688 7.55001 18.7688Z" fill="black" />
|
||||
<path opacity="0.3" d="M10.45 18.9687C10.35 18.9687 10.25 18.9687 10.25 18.9687C9.75 18.8687 9.35 18.2688 9.55 17.7688L12.55 5.76878C12.65 5.26878 13.25 4.8687 13.75 5.0687C14.25 5.1687 14.65 5.76878 14.45 6.26878L11.45 18.2688C11.35 18.6688 10.85 18.9687 10.45 18.9687Z" fill="black" />
|
||||
</svg>
|
||||
</span>
|
||||
<!--end::Svg Icon-->
|
||||
</span>
|
||||
<span class="menu-title">Library</span>
|
||||
</a>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<!--end::Menu-->
|
||||
</div>
|
||||
<!--end::Aside Menu-->
|
||||
</div>
|
||||
<!--end::Aside menu-->
|
||||
<!--begin::Footer-->
|
||||
<div class="aside-footer flex-column-auto py-5" id="kt_aside_footer">
|
||||
<a href="/logout" class="btn btn-custom btn-primary w-100" data-bs-toggle="tooltip" data-bs-trigger="hover" data-bs-dismiss-="click" style="background-color: #FFF8DC;" title="Exit the wrenchboard account">
|
||||
<span class="btn-label ">Logout</span>
|
||||
<!--begin::Svg Icon | path: icons/duotune/general/gen005.svg-->
|
||||
<span class="svg-icon btn-icon svg-icon-2">
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none">
|
||||
<path opacity="0.3" d="M19 22H5C4.4 22 4 21.6 4 21V3C4 2.4 4.4 2 5 2H14L20 8V21C20 21.6 19.6 22 19 22ZM12.5 18C12.5 17.4 12.6 17.5 12 17.5H8.5C7.9 17.5 8 17.4 8 18C8 18.6 7.9 18.5 8.5 18.5L12 18C12.6 18 12.5 18.6 12.5 18ZM16.5 13C16.5 12.4 16.6 12.5 16 12.5H8.5C7.9 12.5 8 12.4 8 13C8 13.6 7.9 13.5 8.5 13.5H15.5C16.1 13.5 16.5 13.6 16.5 13ZM12.5 8C12.5 7.4 12.6 7.5 12 7.5H8C7.4 7.5 7.5 7.4 7.5 8C7.5 8.6 7.4 8.5 8 8.5H12C12.6 8.5 12.5 8.6 12.5 8Z" fill="black" />
|
||||
<rect x="7" y="17" width="6" height="2" rx="1" fill="black" />
|
||||
<rect x="7" y="12" width="10" height="2" rx="1" fill="black" />
|
||||
<rect x="7" y="7" width="6" height="2" rx="1" fill="black" />
|
||||
<path d="M15 8H20L14 2V7C14 7.6 14.4 8 15 8Z" fill="black" />
|
||||
</svg>
|
||||
</span>
|
||||
<!--end::Svg Icon-->
|
||||
</a>
|
||||
</div>
|
||||
<!--end::Footer-->
|
||||
</div>
|
||||
<!--end::Aside-->
|
||||
<!--begin::Wrapper-->
|
||||
<div class="wrapper d-flex flex-column flex-row-fluid" id="kt_wrapper">
|
||||
<!--begin::Header-->
|
||||
<div id="kt_header" style="" class="header align-items-stretch">
|
||||
<!--begin::Brand-->
|
||||
<div class="header-brand">
|
||||
<!--begin::Logo-->
|
||||
<a href="#">
|
||||
<img alt="Logo" src="/assets/ext/images/wrenchboard.png" class="h-25px h-lg-45px" />
|
||||
</a>
|
||||
<!--end::Logo-->
|
||||
<!--begin::Aside minimize-->
|
||||
<div id="kt_aside_toggle" class="btn btn-icon w-auto px-0 btn-active-color-primary aside-minimize" data-kt-toggle="true" data-kt-toggle-state="active" data-kt-toggle-target="body" data-kt-toggle-name="aside-minimize">
|
||||
<!--begin::Svg Icon | path: icons/duotune/arrows/arr092.svg-->
|
||||
<span class="svg-icon svg-icon-1 me-n1 minimize-default">
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none">
|
||||
<rect opacity="0.3" x="8.5" y="11" width="12" height="2" rx="1" fill="black" />
|
||||
<path d="M10.3687 11.6927L12.1244 10.2297C12.5946 9.83785 12.6268 9.12683 12.194 8.69401C11.8043 8.3043 11.1784 8.28591 10.7664 8.65206L7.84084 11.2526C7.39332 11.6504 7.39332 12.3496 7.84084 12.7474L10.7664 15.3479C11.1784 15.7141 11.8043 15.6957 12.194 15.306C12.6268 14.8732 12.5946 14.1621 12.1244 13.7703L10.3687 12.3073C10.1768 12.1474 10.1768 11.8526 10.3687 11.6927Z" fill="black" />
|
||||
<path opacity="0.5" d="M16 5V6C16 6.55228 15.5523 7 15 7C14.4477 7 14 6.55228 14 6C14 5.44772 13.5523 5 13 5H6C5.44771 5 5 5.44772 5 6V18C5 18.5523 5.44771 19 6 19H13C13.5523 19 14 18.5523 14 18C14 17.4477 14.4477 17 15 17C15.5523 17 16 17.4477 16 18V19C16 20.1046 15.1046 21 14 21H5C3.89543 21 3 20.1046 3 19V5C3 3.89543 3.89543 3 5 3H14C15.1046 3 16 3.89543 16 5Z" fill="black" />
|
||||
</svg>
|
||||
</span>
|
||||
<!--end::Svg Icon-->
|
||||
<!--begin::Svg Icon | path: icons/duotune/arrows/arr076.svg-->
|
||||
<span class="svg-icon svg-icon-1 minimize-active">
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none">
|
||||
<rect opacity="0.3" width="12" height="2" rx="1" transform="matrix(-1 0 0 1 15.5 11)" fill="black" />
|
||||
<path d="M13.6313 11.6927L11.8756 10.2297C11.4054 9.83785 11.3732 9.12683 11.806 8.69401C12.1957 8.3043 12.8216 8.28591 13.2336 8.65206L16.1592 11.2526C16.6067 11.6504 16.6067 12.3496 16.1592 12.7474L13.2336 15.3479C12.8216 15.7141 12.1957 15.6957 11.806 15.306C11.3732 14.8732 11.4054 14.1621 11.8756 13.7703L13.6313 12.3073C13.8232 12.1474 13.8232 11.8526 13.6313 11.6927Z" fill="black" />
|
||||
<path d="M8 5V6C8 6.55228 8.44772 7 9 7C9.55228 7 10 6.55228 10 6C10 5.44772 10.4477 5 11 5H18C18.5523 5 19 5.44772 19 6V18C19 18.5523 18.5523 19 18 19H11C10.4477 19 10 18.5523 10 18C10 17.4477 9.55228 17 9 17C8.44772 17 8 17.4477 8 18V19C8 20.1046 8.89543 21 10 21H19C20.1046 21 21 20.1046 21 19V5C21 3.89543 20.1046 3 19 3H10C8.89543 3 8 3.89543 8 5Z" fill="#C4C4C4" />
|
||||
</svg>
|
||||
</span>
|
||||
<!--end::Svg Icon-->
|
||||
</div>
|
||||
<!--end::Aside minimize-->
|
||||
<!--begin::Aside toggle-->
|
||||
<div class="d-flex align-items-center d-lg-none ms-n3 me-1" title="Show aside menu">
|
||||
<div class="btn btn-icon btn-active-color-primary w-30px h-30px" id="kt_aside_mobile_toggle">
|
||||
<!--begin::Svg Icon | path: icons/duotune/abstract/abs015.svg-->
|
||||
<span class="svg-icon svg-icon-1">
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none">
|
||||
<path d="M21 7H3C2.4 7 2 6.6 2 6V4C2 3.4 2.4 3 3 3H21C21.6 3 22 3.4 22 4V6C22 6.6 21.6 7 21 7Z" fill="black" />
|
||||
<path opacity="0.3" d="M21 14H3C2.4 14 2 13.6 2 13V11C2 10.4 2.4 10 3 10H21C21.6 10 22 10.4 22 11V13C22 13.6 21.6 14 21 14ZM22 20V18C22 17.4 21.6 17 21 17H3C2.4 17 2 17.4 2 18V20C2 20.6 2.4 21 3 21H21C21.6 21 22 20.6 22 20Z" fill="black" />
|
||||
</svg>
|
||||
</span>
|
||||
<!--end::Svg Icon-->
|
||||
</div>
|
||||
</div>
|
||||
<!--end::Aside toggle-->
|
||||
</div>
|
||||
<!--end::Brand-->
|
||||
<!--begin::Toolbar-->
|
||||
<div class="toolbar d-flex align-items-stretch">
|
||||
<!--begin::Toolbar container-->
|
||||
<div class="container-fluid py-6 py-lg-0 d-flex flex-column flex-lg-row align-items-lg-stretch justify-content-lg-between">
|
||||
<!--begin::Page title-->
|
||||
<div class="page-title d-flex justify-content-center flex-column me-5">
|
||||
<!--begin::Title-->
|
||||
<h1 class="d-flex flex-column text-dark fw-bolder fs-3 mb-0"><? echo isset($page_title) ? $page_title : 'Home'; ?></h1>
|
||||
<!--end::Title-->
|
||||
<!--begin::Breadcrumb-->
|
||||
<ul class="breadcrumb breadcrumb-separatorless fw-bold fs-7 pt-1">
|
||||
<!--begin::Item-->
|
||||
<li class="breadcrumb-item text-muted">
|
||||
<a href="/dash" class="text-muted text-hover-primary">Home</a>
|
||||
</li>
|
||||
<!--end::Item-->
|
||||
<!--begin::Item-->
|
||||
<li class="breadcrumb-item">
|
||||
<span class="bullet bg-gray-200 w-5px h-2px"></span>
|
||||
</li>
|
||||
<!--end::Item-->
|
||||
<!--begin::Item-->
|
||||
<li class="breadcrumb-item text-muted"><? echo isset($page_title) ? $page_title : ''; ?></li>
|
||||
<!--end::Item-->
|
||||
<!--begin::Item-->
|
||||
<li class="breadcrumb-item">
|
||||
<span class="bullet bg-gray-200 w-5px h-2px"></span>
|
||||
</li>
|
||||
<!--end::Item-->
|
||||
|
||||
</ul>
|
||||
<!--end::Breadcrumb-->
|
||||
</div>
|
||||
<!--end::Page title-->
|
||||
<!--begin::Action group-->
|
||||
<div class="d-flex align-items-stretch overflow-auto pt-3 pt-lg-0">
|
||||
|
||||
|
||||
<!--begin::Action wrapper-->
|
||||
<div class="d-flex align-items-center">
|
||||
|
||||
<!--begin::Actions-->
|
||||
<div class="d-flex">
|
||||
<!--begin::Action-->
|
||||
<a href="/member/balance" class="btn btn-sm btn-active-icon-primary" >
|
||||
<!--begin::Svg Icon | path: icons/duotune/files/fil003.svg-->
|
||||
<span class="fs-7 text-gray-700 fw-bolder pe-3 d-none d-xxl-block">My Wallet</span>
|
||||
<!--end::Svg Icon-->
|
||||
</a>
|
||||
<!--end::Action-->
|
||||
|
||||
|
||||
|
||||
<!--begin::Action-->
|
||||
<a href="/refer/refagree" class="btn btn-sm btn-active-icon-primary" >
|
||||
<!--begin::Svg Icon | path: icons/duotune/files/fil003.svg-->
|
||||
<span class="fs-7 text-gray-700 fw-bolder pe-3 d-none d-xxl-block">Refer a Friend</span>
|
||||
<!--end::Svg Icon-->
|
||||
</a>
|
||||
<!--end::Action-->
|
||||
|
||||
|
||||
|
||||
</div>
|
||||
<!--end::Actions-->
|
||||
</div>
|
||||
<!--end::Action wrapper-->
|
||||
|
||||
</div>
|
||||
<!--end::Action group-->
|
||||
</div>
|
||||
<!--end::Toolbar container-->
|
||||
</div>
|
||||
<!--end::Toolbar-->
|
||||
</div>
|
||||
<!--end::Header-->
|
||||
<!--begin::Content-->
|
||||
<div class="content d-flex flex-column flex-column-fluid" id="kt_content">
|
||||
<!--begin::Post-->
|
||||
<div class="post d-flex flex-column-fluid" id="kt_post">
|
||||
<!--begin::Container-->
|
||||
<div id="kt_content_container" class="container-xxl">
|
||||
@@ -1,26 +1,48 @@
|
||||
<?
|
||||
<?php
|
||||
setlocale(LC_MONETARY, 'en_NG');
|
||||
//echo $_SESSION['wallet'];
|
||||
?>
|
||||
<!--begin::Row-->
|
||||
<div class="row g-5 g-xl-8">
|
||||
<?php
|
||||
if ( isset($_SESSION['wallet']) && $_SESSION['wallet'] == true)
|
||||
{
|
||||
?>
|
||||
<div class="col-xl-3 bg-light-success rounded p-5 mb-7" style="text-align: center;">
|
||||
<a href="/wallet/"> <h5 class="no-margin"> Claim your free WRENCH Token</h5></a>
|
||||
</div>
|
||||
<?php
|
||||
}
|
||||
?>
|
||||
|
||||
<?
|
||||
if ($_SESSION["offer_interest_count"] + $_SESSION['past_duejobs_count'] > 0) {
|
||||
|
||||
<?php
|
||||
if ($_SESSION["offer_interest_count"] + $_SESSION['past_duejobs_count'] > 0) {
|
||||
|
||||
if ($_SESSION['past_duejobs_count'] > 0) {
|
||||
?>
|
||||
<div class="panel bg-slate" style="background-color: lightpink;"> <div class="panel-body"> <div class="row"> <a href="/proj/pastdue"> <h5 class="no-margin"> You have <?= $_SESSION['past_duejobs_count'] ?> task(s) that are passed due dates Click here to manage</h5></a> </div> </div> </div>
|
||||
<?
|
||||
?>
|
||||
<div class="col-xl-3 bg-light-danger rounded p-5 mb-7">
|
||||
<a href="/proj/pastdue"> <h5 class="no-margin"> You have <?= $_SESSION['past_duejobs_count'] ?> task(s) that are passed due dates Click here to manage</h5></a>
|
||||
</div>
|
||||
<?php
|
||||
}
|
||||
|
||||
if ($_SESSION["offer_interest_count"] > 0) {
|
||||
?>
|
||||
<div class="panel bg-slate"> <div class="panel-body"> <div class="row"> <a href="/jobs/offerinterest"> <h5 class="no-margin">You have <?= $_SESSION["offer_interest_count"] ?> interest in your task.Click to view now</h5></a> </div> </div> </div>
|
||||
<?
|
||||
}
|
||||
} else {
|
||||
?>
|
||||
|
||||
<?
|
||||
<div class="col-xl-3 bg-light-success rounded p-5 mb-7">
|
||||
<!--begin::Charts Widget 1-->
|
||||
<a href="/jobs/offerinterest"> <h5 class="no-margin">You have <?= $_SESSION["offer_interest_count"] ?> interest in your task.Click to view now</h5></a>
|
||||
<!--end::Charts Widget 1-->
|
||||
</div>
|
||||
|
||||
<?php
|
||||
}
|
||||
}
|
||||
?>
|
||||
|
||||
?>
|
||||
<div class="col-xl-3">
|
||||
<!--begin::Charts Widget 1-->
|
||||
|
||||
<!--end::Charts Widget 1-->
|
||||
</div>
|
||||
</div>
|
||||
<!--end::Row-->
|
||||
@@ -1,145 +1,121 @@
|
||||
<!-- Main content -->
|
||||
<div class="content-wrapper">
|
||||
<?php include('common/userstrip.php'); ?>
|
||||
<!-- Marketing campaigns -->
|
||||
<div class="panel panel-flat">
|
||||
<div class="panel-heading">
|
||||
<h5 class="panel-title">Add Credit to your Account</h5>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Main charts -->
|
||||
<div class="row">
|
||||
<div class="col-lg-12">
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<!-- /main charts -->
|
||||
|
||||
<div class="row">
|
||||
<div class="col-lg-9 col-sm-6">
|
||||
<?php include('common/userstrip.php'); ?>
|
||||
<!--begin::Row-->
|
||||
<div class="row g-5 g-xl-8">
|
||||
<!--begin::Col-->
|
||||
<div class="col-xl-6">
|
||||
<!--begin::Tables Widget 3-->
|
||||
|
||||
|
||||
<div class="thumbnail">
|
||||
|
||||
<?php echo $txt_detail; ?>
|
||||
<!-- div class="thumb">
|
||||
<img src="/assets/images/comingsoon.jpg" alt="Refer A Friend">
|
||||
</div -->
|
||||
|
||||
<!--begin::Order details-->
|
||||
<div class="card card-flush py-4 flex-row-fluid">
|
||||
<!--begin::Card header-->
|
||||
<div class="card-header">
|
||||
<div class="card-title">
|
||||
<h2>Add Credit to your Account </h2>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
<!--end::Card header-->
|
||||
<!--begin::Card body-->
|
||||
<div class="card-body pt-0">
|
||||
<div class="table-responsive">
|
||||
<!--begin::Table-->
|
||||
<?php echo $txt_detail; ?>
|
||||
<!--end::Table-->
|
||||
</div>
|
||||
</div>
|
||||
<!--end::Card body-->
|
||||
</div>
|
||||
<!--end::Order details-->
|
||||
|
||||
<!--end::Tables Widget 3-->
|
||||
</div>
|
||||
<!--end::Col-->
|
||||
<!--begin::Col-->
|
||||
<div class="col-xl-6">
|
||||
<!--begin::Table Widget 8-->
|
||||
<div class="card card-xl-stretch mb-5 mb-xl-8">
|
||||
<!--begin::Header-->
|
||||
<div class="card-header border-0 pt-5">
|
||||
<h3 class="card-title align-items-start flex-column">
|
||||
<span class="card-label fw-bolder fs-3 mb-1">Recent Activities</span>
|
||||
<span class="text-muted mt-1 fw-bold fs-7">Activity Report</span>
|
||||
</h3>
|
||||
<div class="card-toolbar">
|
||||
|
||||
<div class="panel panel-flat">
|
||||
<div class="panel-heading">
|
||||
</div>
|
||||
</div>
|
||||
<!--end::Header-->
|
||||
<!--begin::Body-->
|
||||
<div class="card-body py-3">
|
||||
<div class="tab-content">
|
||||
<!--begin::Tap pane-->
|
||||
<div class="tab-pane fade show active" id="kt_table_widget_8_tab_1">
|
||||
<!--begin::Table container-->
|
||||
<div class="table-responsive">
|
||||
<!--begin::Table-->
|
||||
<table class="table align-middle gs-0 gy-3">
|
||||
<!--begin::Table head-->
|
||||
<thead>
|
||||
|
||||
|
||||
<div class="row">
|
||||
|
||||
<div class="col-lg-6">
|
||||
Credit Your Account With PayPal<SUP>TM</SUP>
|
||||
|
||||
<form name="pp" action="/member/paypal" method="POST">
|
||||
|
||||
|
||||
<div class="form-group">
|
||||
<label for="sel1">Amount:</label>
|
||||
<select class="form-control" id="sel1" name="D1" onchange="checkAmountPaypal(this.value);">
|
||||
<option>Select Amount..</option>
|
||||
<tr>
|
||||
<th class="p-0 w-90px">Date</th>
|
||||
<th class="p-0 min-w-160px">Recipient</th>
|
||||
<th class="p-0 w-100px">Amount/Fee</th>
|
||||
<th class="p-0 w-100px">Conf/Status</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<!--end::Table head-->
|
||||
<!--begin::Table body-->
|
||||
<tbody>
|
||||
<?php
|
||||
//var_dump($sendmoney_table_result);
|
||||
foreach( $sendmoney_table_result as $row){
|
||||
?>
|
||||
<tr>
|
||||
<td>
|
||||
<?=$row->date?>
|
||||
</td>
|
||||
<td>
|
||||
<a href="#" class="text-dark fw-bolder text-hover-primary mb-1 fs-6"><?=$row->recitient?></a>
|
||||
<span class="text-muted fw-bold d-block fs-7"></span>
|
||||
</td>
|
||||
<td>
|
||||
<?=$row->amount?><br><?=$row->fee?>
|
||||
</td>
|
||||
<td class="text-end">
|
||||
<span class="text-dark fw-bolder d-block fs-7"><?=$row->confirmation?></span>
|
||||
<span class="text-muted fw-bold d-block fs-8"><?=$row->status?></span>
|
||||
</td>
|
||||
<td class="text-end">
|
||||
<a href="#" class="btn btn-sm btn-icon btn-bg-light btn-active-color-primary">
|
||||
<i class="bi bi-three-dots fs-5"></i>
|
||||
</a>
|
||||
</td>
|
||||
</tr>
|
||||
<?php
|
||||
|
||||
for ($i=2; $i<5; $i++)
|
||||
{
|
||||
|
||||
$nairaval = $i*2000;
|
||||
$dollarval = ($nairaval/370)*(1.015);
|
||||
echo "<option value='".$dollarval."' selected>".$nairaval." Naira for $". sprintf ("%.2f",$dollarval)."</option>";
|
||||
}
|
||||
?>
|
||||
</select>
|
||||
<span class="input-group-btn">
|
||||
<input name="B1" type="submit" class="btn btn-primary" value="Continue"/>
|
||||
</span>
|
||||
</div>
|
||||
|
||||
</form>
|
||||
}
|
||||
?>
|
||||
|
||||
|
||||
</tbody>
|
||||
<!--end::Table body-->
|
||||
</table>
|
||||
|
||||
|
||||
</div>
|
||||
<div class="col-lg-6">
|
||||
<div class="alert alert-info no-border"> You will be transferred to the Paypal website to complete this transaction.
|
||||
<p>
|
||||
You will require an existing Paypal account to complete this transaction.</div>
|
||||
|
||||
<p><div class="alert alert-danger no-border">PLEASE DO NOT CLOSE THE PAYPAL PAGE AFTER PAYMENT IS COMPLETED, you will be automatically re-directed back to your WrenchBoard account once payment is approved. If you close the page before this, your payment may not be properly credited.</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
<div class="col-lg-3 col-sm-6">
|
||||
<div class="thumbnail">
|
||||
|
||||
<div class="thumb">
|
||||
<img src="/assets/images/howitworks_dash.png" alt="Your Page">
|
||||
</div>
|
||||
|
||||
<div class="caption">
|
||||
<h6 class="no-margin-top text-semibold"><a href="#" class="text-default">How it Works</a> <a href="#" class="text-muted"></a></h6>
|
||||
See how to create projects, offer and manage project on WrenchBoard
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
<div class="row">
|
||||
<div class="col-lg-12">
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<!--end::Table-->
|
||||
</div>
|
||||
<!-- /main content -->
|
||||
<!--end::Tap pane-->
|
||||
|
||||
</div>
|
||||
</div>
|
||||
<!--end::Body-->
|
||||
</div>
|
||||
<!--end::Tables Widget 8-->
|
||||
</div>
|
||||
<!--end::Col-->
|
||||
</div>
|
||||
<!--end::Row-->
|
||||
|
||||
|
||||
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user