This commit is contained in:
2020-04-12 13:47:16 -04:00
parent 71d634b76e
commit 24ea6b9ae7
14 changed files with 494 additions and 64 deletions
@@ -16,7 +16,8 @@ Welcome to {{site_name}}!. In order to complete your registration , click or cop
</td></tr><tr><td style="height:20px; background-color:#CEF6E3 font-size:14px;">
Click Link : https://{{server_name}}/vemail?vlnk={{verify_link}}
<br></td></tr><tr><td>
{{site_name}} gives empowers you to form, find and join one or more groups. As a group member you will receive the benefit of wholesale prices on leading brands from reputable sellers on the purchases you need for your home, your business or your life!
{{site_name}},your personalized learning in one place with tools to make it happen. {{site_name}} makes it easy to track due dates of goals set, focus plans with e-alerts in your workspace and dashboard.
</td></tr><tr><td>
</td></tr><tr><td>
+18 -13
View File
@@ -23,6 +23,9 @@
#define COREGRADE_ACCOUNT_TESTEMAIL 11001
#define COREGRADE_ACCOUNT_PENDING 11010
#define COREGRADE_VERIFY_PENDING_LINK 11015
#define COREGRADE_START_RESET_PASSWORD 11017
#define COREGRADE_ACCOUNT_CREATEACC 11020
#define COREGRADE_ACCOUNT_LOGIN 11025
#define COREGRADE_ACCOUNT_ADDCARD 11027
@@ -41,7 +44,9 @@
//**************************************************************
#define RESET_START 100
#define RESET_CONFIRM 200
#define RESET_COMPLETE 300
@@ -56,15 +61,15 @@
#define COREGRADE_INTERSW_DO_TRANSFER 560
#define COREGRADE_INTERSW_QUERY_TRANSACTION 561
#define COREGRADE_ADD_MONEYRECIPIENT 600
#define COREGRADE_ADD_MONEYRECIPIENT 600
#define COREGRADE_CREATE_USER_ACCOUNT 700
#define COREGRADE_USER_ACCOUNT_LOGIN 710
#define COREGRADE_START_PASSWORDRESET 720
#define COREGRADE_COMPLETE_PASSWORDRESET 730
#define COREGRADE_START_ADDMONEY 770
#define COREGRADE_COMPLETE_ADDMONEY 775
#define COREGRADE_START_ADDMONEY 770
#define COREGRADE_COMPLETE_ADDMONEY 775
#define COREGRADE_ADD_MOBILE_TOPUPNUM 900
#define COREGRADE_PROMO_CALL 990
@@ -78,27 +83,27 @@
#define COREGRADE_TOPUP_ORDER 900020
#define COREGRADE_TOPUP_ORDER_PURCHASE 900030
#define COREGRADE_TOPUP_ORDER_PURCHASE 900030
#define COREGRADE_PAYPAL_IPNMSG 900090
#define COREGRADE_BULKTOPUP_ORDER 700010
#define COREGRADE_BULKTOPUP_ITEM 700020
#define COREGRADE_BULKTOPUP_ITEMUPDATE 700030
#define COREGRADE_BULKTOPUP_DELIVER 700040
#define COREGRADE_BULKTOPUP_ORDER 700010
#define COREGRADE_BULKTOPUP_ITEM 700020
#define COREGRADE_BULKTOPUP_ITEMUPDATE 700030
#define COREGRADE_BULKTOPUP_DELIVER 700040
#define COREGRADE_BALANCE_TOPUP_ORDER 800020
#define COREGRADE_BALANCE_TOPUP_PURCHASE 800030
#define COREGRADE_BALANCE_TOPUP_PAYMENT 800040
#define COREGRADE_BALANCE_TOPUP_PURCHASE 800030
#define COREGRADE_BALANCE_TOPUP_PAYMENT 800040
#define VIRTUAL_AIRTOPUP 70011
#define VIRTUAL_AIRTOPUP 70011
#define PAY_MODE_BALANCE 0
#define PAY_MODE_CCARD 1
#define PAY_MODE_BONUS 9
#define PAY_MODE_BONUS 9
#define APPROVED_BALANCE 5
#define DISAPROVE_BALANCE 3
+8
View File
@@ -8,6 +8,14 @@ long WelcomeAccountMail(CVars in);
long GroupCreateMemberMail(CVars in);
long CreateCoreGradeGroupMail(CVars in);
long member_email_calls(long action, CVars in, CVars &out);
/*long transporter_email_calls(long action, CVars in, CVars &out);
long agent_email_calls(long action, CVars in, CVars &out);
long cron_email_calls(long action, CVars in, CVars &out);
long alert_email_calls(long action, CVars in, CVars &out);
long email_test(CVars in, CVars &out);
long provider_email_calls(long action, CVars in, CVars &out); */
long carpool_email_calls(long action, CVars in, CVars &out);
long send_email(CVars in, CVars &out);
+192 -8
View File
@@ -11,10 +11,15 @@
#include "pgsql_wrapper.h"
#include "cfg.h"
#include <curl/curl.h>
#include "email.h"
#define CREATE_BY_EMAIL 1000
#define CREATE_BY_PHONE 2000
long CreateDefaultPage(CVars in, CVars &out);
long CreateUserPage(CVars in, CVars &out);
long AddPageCard(CVars in, CVars &out);
@@ -94,6 +99,8 @@ string base64_decode(string const& encoded_string) {
return ret;
}
long passwordReset(CVars in, CVars &out);
long account_calls(CVars in, CVars &out) {
logfmt(logINFO, "account_calls()");
out["result"] = "YES I GET TO BACK END";
@@ -111,6 +118,10 @@ long account_calls(CVars in, CVars &out) {
return CreateCoreGradeAccountPending(in, out);
break;
case COREGRADE_START_RESET_PASSWORD:
return passwordReset(in, out);
break;
case COREGRADE_ACCOUNT_CREATEACC:
return CreateCoreGradeAccount(in, out);
break;
@@ -122,11 +133,179 @@ long account_calls(CVars in, CVars &out) {
case COREGRADE_ACCOUNT_ADDPAGECARD:
return AddPageCard(in, out);
break;
}
logfmt(logINFO, "/account_calls()");
return 0;
}
/*************************************************************************************************************************/
long startPassReset(CVars in, CVars &out);
long confirmPassReset(CVars in, CVars &out);
long completePassReset(CVars in, CVars &out);
long passwordReset(CVars in, CVars &out) {
logfmt(logINFO, "passwordReset()");
long mode = REQ_LONG(in, "mode", 0, -1);
switch (mode) {
case RESET_START:
return startPassReset(in, out);
break;
case RESET_CONFIRM:
return confirmPassReset(in, out);
break;
case RESET_COMPLETE:
return completePassReset(in, out);
break;
}
}
/*
#define RESET_START 100
#define RESET_CONFIRM 200
#define RESET_COMPLETE 300
*/
long startPassReset(CVars in, CVars &out) {
logfmt(logINFO, "startPassReset()");
long ret = PHP_API_BAD_PARAM;
CVars x, y;
try {
REQ_STRING(in, "username", 2, 49, "(.*)");
const char *loc = getenv("REMOTE_ADDR");
ret = load_db_record(out, "SELECT id AS member_id,now() AS reset_seed FROM members WHERE status=1 AND LOWER(username)=LOWER('%s') ", in["username"].c_str());
if (ret && out["member_id"].Long() > 0) {
// remove all existing session
pgsql_exec("UPDATE resetpassword SET status=7 WHERE status NOT IN (3,5) AND member_id=%ld ", out["member_id"].Long());
// Create New Session Now
if (load_db_record(y, "SELECT floor( random()*100000) AS reset_pin ,md5('%s') AS reset_key", out["reset_seed"].c_str()) >= 0) {
x["username"] = in["username"];
x["member_id"] = out["member_id"];
x["loc"] = loc;
x["reset_key"] = y["reset_key"];
x["reset_pin"] = y["reset_pin"];
x["username"].set_valid(true);
x["loc"].set_valid(true);
x["reset_key"].set_valid(true);
x["reset_pin"].set_valid(true);
x["member_id"].set_valid(true);
out["reset_id"] = insert_db_record(DBS_VALID, "resetpassword", "resetpassword_id_seq", x);
if (out["reset_id"].Long() > 0) {
ret = PHP_API_OK;
out["reset_key"] = "YOU WILL GET THIS IF PIN IS CORRECT IN CONFIRM"; //x["reset_key"];
out["mode"] = RESET_START;
member_email_calls(in["action"].Long(), out, x); // note the use of out to send in
}
}
} else {
x["username"] = in["username"];
x["loc"] = loc;
x["status"] = 3;
x["username"].set_valid(true);
x["loc"].set_valid(true);
x["status"].set_valid(true);
out["reset_id"] = insert_db_record(DBS_VALID, "resetpassword", "resetpassword_id_seq", x);
out["status_message"] = "Invalid Username or disabled account";
out["status_advice"] = "Check username or Contact support";
}
out["reset_seed="] = "REMOVED";
} catch (bad_parameter) {
out["status_message"] = "Reset Error A00";
logfmt(logINFO, "ERROR CALL long startPassReset(CVars in, CVars &out)");
}
return ret;
}
long confirmPassReset(CVars in, CVars &out) {
logfmt(logINFO, "confirmPassReset()");
long ret = PHP_API_BAD_PARAM;
CVars x, y;
try {
REQ_STRING(in, "username", 2, 49, "(.*)");
REQ_LONG(in, "reset_pin", 0, -1);
const char *loc = getenv("REMOTE_ADDR");
ret = load_db_record(out, "SELECT *, id AS reset_id FROM resetpassword WHERE status = 0 AND LOWER(username)=LOWER('%s') AND reset_pin='%lu' AND loc='%s'", in["username"].c_str(), in["reset_pin"].Long(), loc);
if (ret && out["id"].Long() > 0) {
pgsql_query("UPDATE resetpassword SET status = 1 WHERE id =%lu", out["reset_id"].Long());
ret = PHP_API_OK;
} else {
out["status_message"] = "Invalid PIN or disabled account";
out["status_advice"] = "Contact support or Start all over";
}
// out["reset_seed="] = "REMOVED";
} catch (bad_parameter) {
out["status_message"] = "Reset Error A02";
logfmt(logINFO, "ERROR CALL long confirmPassReset(CVars in, CVars &out)");
}
return ret;
}
long completePassReset(CVars in, CVars &out) {
logfmt(logINFO, "completePassReset()");
long ret = PHP_API_BAD_PARAM;
CVars x, y;
try {
REQ_STRING(in, "username", 2, 49, "(.*)");
REQ_STRING(in, "newpass", 5, 15, "(.*)");
REQ_LONG(in, "reset_pin", 0, -1);
REQ_STRING(in, "reset_key", 2, 49, "(.*)");
const char *loc = getenv("REMOTE_ADDR");
ret = load_db_record(out, "SELECT *,id AS reset_id FROM resetpassword WHERE status=1 AND LOWER(username)=LOWER('%s') AND reset_pin='%lu' AND loc='%s' AND reset_key='%s'", in["username"].c_str(), in["reset_pin"].Long(), loc, in["reset_key"].c_str());
if (ret && out["reset_id"].Long() > 0) {
char mcf[128];
int result = 0; //libscrypt_hash(mcf, in["password"].c_str(), SCRYPT_N, SCRYPT_r, SCRYPT_p);
if (result > 0) {
if (pgsql_query("UPDATE members SET password='%s' WHERE id =%lu", mcf, out["member_id"].Long()) >= 0) {
pgsql_query("UPDATE resetpassword SET status = 5,reset_key=NULL WHERE id =%lu", out["reset_id"].Long());
ret = PHP_API_OK;
}
out["reset_key"] = "YOU WILL GET THIS IF PIN IS CORRECT IN CONFIRM"; //x["reset_key"];
out["mode"] = RESET_COMPLETE;
member_email_calls(in["action"].Long(), out, x); // note the use of out to send in
} else {
logfmt(logINFO, "ERROR create hash using SCRYPT");
}
} else {
out["status_message"] = "Invalid call or disabled account";
out["status_advice"] = "Contact Support";
}
// out["reset_seed="] = "REMOVED";
} catch (bad_parameter) {
out["status_message"] = "Reset Error A03";
logfmt(logINFO, "ERROR CALL long confirmPassReset(CVars in, CVars &out)");
}
return ret;
}
/*************************************************************************************************************************/
long AddPageCard(CVars in, CVars &out) {
long ret = PHP_API_BAD_PARAM;
@@ -155,16 +334,13 @@ long AddPageCard(CVars in, CVars &out) {
x["member_id"] = in["member_id"];
x["member_id"].set_valid(true);
x["item_type"] = in["item_type"];
x["item_type"].set_valid( true );
x["item_type"].set_valid(true);
ret = insert_db_record(DBS_VALID, "members_page_item", "members_page_item_id_seq", x);
out["page_item_id"] = insert_db_record(DBS_VALID, "members_page_item", "members_page_item_id_seq", x);
// } else {
// out["status"] = "Error";
// }
if (out["page_item_id"].Long()) {
ret = PHP_API_OK;
}
} catch (bad_parameter) {
out["status"] = "Invalid session ID";
@@ -271,6 +447,14 @@ long LoginCoreGradeAccount(CVars in, CVars &out) {
out["status"] = "Invalid username and/or password";
}
// make sure we have folder for the user
if (out["folder"] == "") {
load_db_record(out, "SELECT upper(md5( now()::text )) AS folder");
CVars x;
x["folder"] = out["folder"];
x["folder"].set_valid(true);
update_db_record(DBS_VALID, "members", x, out["member_id"].Long());
}
logfmt(logINFO, "/LoginCoreGradeAccount()");
return ret;
+190
View File
@@ -12,7 +12,197 @@ void vars2form( CVars &v, C_CGI_Form &form );
extern int mailsend(CVars in,CVars &out);
long carpool_email_calls(long email_action, CVars in, CVars &out) {
logfmt(logINFO, "carpool_email_calls() action=%lu", email_action);
out["result"] = "ECHO BACKEND";
CVars x, y, z, x1, x2;
long ret = 0;
const char *loc = getenv("REMOTE_ADDR");
C_CGI_Form form("", "");
char accept_link[150];
char reject_link[150];
out["contactus"] = CfgReadChar("system.contactus");
out["facebook"] = CfgReadChar("system.facebook");
out["twitter"] = CfgReadChar("system.twitter");
out["site_www"] = CfgReadChar("system.site_www");
//https://www.float.sg/
try {
form.LetStr("site_name", "Float");
form.LetStr("site_www", out["site_www"].c_str());
form.LetStr("contactus", out["contactus"].c_str());
form.LetStr("facebook", out["facebook"].c_str());
form.LetStr("twitter", out["twitter"].c_str());
// email_action = SAVVY_BKO_CARPOOL_FRIENDMESSAGE;
logfmt(logINFO, "carpool_email_calls() 11 - JOY email_action=%lu", email_action);
switch (email_action) {
logfmt(logINFO, "carpool_email_calls() 00 - FAITH");
/*
case SAVVY_BKO_CARPOOL_FRIENDMESSAGE:
logfmt(logINFO, "carpool_email_calls() 01");
if (load_db_record(x, "SELECT cf.email AS friend_email, cf.*,cp.member_id,m.firstname AS invite_firstname FROM members_carpool_friends cf LEFT JOIN members_carpool cp ON cp.id =cf.carpool_id LEFT JOIN members m ON m.id =cp.member_id WHERE cf.id =%lu ", in["carpool_friend_id"].Long())) {
snprintf(accept_link, sizeof (accept_link), "lmsg/carpool?pid=%s&ans=accept", x["link"].c_str());
snprintf(reject_link, sizeof (reject_link), "lmsg/carpool?pid=%s&ans=reject", x["link"].c_str());
form.LetStr("reject_link", reject_link);
form.LetStr("accept_link", accept_link);
logfmt(logINFO, "carpool_email_calls() 02");
// form.LetStr("msgid", "ABCDEFGHIJKLMNOPQRST");
logfmt(logINFO, "carpool_email_calls() 03");
vars2form(x, form);
form.LetStr("subject", "Carpool Invitation");
form.LetStr("email", x["friend_email"].c_str());
form.Email("carpool/carpool_invite.mailfile");
}
break;
case SAVVY_BKO_CARPOOL_FRIENDACCEPT:
logfmt(logINFO, "carpool_email_calls() 01");
if (load_db_record(x, "SELECT m.email AS sender_email, cf.*,cp.member_id,cf.firstname AS friend_firstname FROM members_carpool_friends cf LEFT JOIN members_carpool cp ON cp.id =cf.carpool_id LEFT JOIN members m ON m.id =cp.member_id WHERE cf.id =%lu ", in["carpool_friend_id"].Long())) {
snprintf(accept_link, sizeof (accept_link), "lmsg/carpool?pid=%s&ans=accept", x["link"].c_str());
snprintf(reject_link, sizeof (reject_link), "lmsg/carpool?pid=%s&ans=reject", x["link"].c_str());
form.LetStr("reject_link", reject_link);
form.LetStr("accept_link", accept_link);
logfmt(logINFO, "carpool_email_calls() 02");
// form.LetStr("msgid", "ABCDEFGHIJKLMNOPQRST");
logfmt(logINFO, "carpool_email_calls() 03");
vars2form(x, form);
form.LetStr("subject", "Carpool Accepted");
form.LetStr("email", x["sender_email"].c_str());
//form.LetStr("email", "olu@float.sg");
form.Email("carpool/carpool_accepted.mailfile");
}
break;
*/
}
} catch (bad_parameter) {
logfmt(logINFO, "ERROR CALL long member_email_calls(CVars in, CVars &out)");
}
logfmt(logINFO, "/carpool_email_calls()");
return ret;
}
long member_email_calls(long action, CVars in, CVars &out) {
logfmt(logINFO, "member_email_calls()");
out["result"] = "ECHO BACKEND";
CVars x, y, z, x1, x2;
long ret = 0;
long mode = 0;
const char *loc = getenv("REMOTE_ADDR");
C_CGI_Form form("", "");
// form.LetStr("subject", "KleenApp Email Test");
out["contactus"] = CfgReadChar("system.contactus");
out["facebook"] = CfgReadChar("system.facebook");
out["twitter"] = CfgReadChar("system.twitter");
//https://www.float.sg/
form.LetStr("site_name", "Float");
form.LetStr("contactus", out["contactus"].c_str());
form.LetStr("facebook", out["facebook"].c_str());
form.LetStr("twitter", out["twitter"].c_str());
CGIList *inv_list = new CGIList(&form, "inv_items");
char listing_items[1024];
//const PGresult *res;
try {
switch (action) {
/*
case SAVVY_USER_LOGINACCOUNT:
if (load_db_record(x, "SELECT *,email as email2,now() AS last_login2 FROM members WHERE id = %lu ", in["member_id"].Long())) {
vars2form(x, form);
form.LetStr("subject", "Float Account Access");
form.LetStr("email", x["email2"].c_str());
// form.Email("member/user_login.mailfile");
}
break;
case SAVVY_USER_CREATEACCOUNT:
if (in["pending_id"].Long() > 0) {
if (load_db_record(x, " SELECT * FROM members_pending WHERE id=%lu", in["pending_id"].Long()) > 0) {
vars2form(x, form);
form.LetStr("subject", "Confirm your Float Account");
form.LetStr("email", x["email"].c_str());
form.Email("member/user_pending.mailfile");
}
} else {
if (in["member_id"].Long() > 0) {
if (load_db_record(x, "SELECT *,email as email2,now() AS last_login2 FROM members WHERE id = %lu ", in["member_id"].Long())) {
vars2form(x, form);
form.LetStr("subject", "Welcome to Float ");
form.LetStr("email", x["email2"].c_str());
form.Email("member/user_welcome.mailfile");
}
} // member created first time email only
}
break;
case FLOAT_SYSTEM_EMAIL_NOTIFICATION:
if (load_db_record(x, "SELECT * FROM members_notification WHERE id =%lu ", in["notify_id"].Long())) {
vars2form(x, form);
form.LetStr("subject", "Float - Save Money and Time");
form.LetStr("email", "olu@float.sg");
form.LetStr("email", "ses66181@gmal.com");
// form.LetStr("email", x["email2"].c_str());
form.Email("member/user_notification.mailfile");
}
break;
*/
case COREGRADE_START_RESET_PASSWORD:
mode = REQ_LONG(in, "mode", 0, -1);
if (load_db_record(x, "SELECT m.firstname,p.*,m.email AS member_email FROM resetpassword p LEFT JOIN members m ON m.id=p.member_id WHERE p.id=%lu ", in["reset_id"].Long())) {
vars2form(x, form);
form.LetStr("subject", "Reset Password");
form.LetStr("email", x["member_email"].c_str());
switch (mode) {
case RESET_START:
form.Email("member/reset_password.mailfile");
break;
case RESET_CONFIRM:
break;
case RESET_COMPLETE:
break;
}
}
break;
}
} catch (bad_parameter) {
logfmt(logINFO, "ERROR CALL long member_email_calls(CVars in, CVars &out)");
}
logfmt(logINFO, "/member_email_calls()");
return ret;
}
////TO_CHAR(r.service_date :: TIMESTAMP, 'Day Mon dd, yyyy HH:MI AM') AS long_date
long AccountPendingMail(CVars in)
{
+8 -1
View File
@@ -89,7 +89,14 @@ defined('EXIT__AUTO_MAX') OR define('EXIT__AUTO_MAX', 125); // highest auto
define('COREGRADE_ACCOUNT_TESTEMAIL',11001);
define('COREGRADE_ACCOUNT_PENDING',11010);
define('COREGRADE_VERIFY_PENDING_LINK',11015);
define('COREGRADE_START_RESET_PASSWORD',11017);
define('COREGRADE_ACCOUNT_CREATEACC',11020);
define('COREGRADE_ACCOUNT_LOGIN',11025);
define('COREGRADE_ACCOUNT_ADDCARD', 11027);
define('COREGRADE_ACCOUNT_ADDPAGECARD', 11029);
define('COREGRADE_ACCOUNT_ADDPAGECARD', 11029);
define('RESET_START', 100);
define('RESET_CONFIRM', 200 );
define('RESET_COMPLETE', 300 );
+24 -14
View File
@@ -26,20 +26,20 @@ class Auth extends Start_Controller {
$data["page_title"] = "";
$data["username"] = $username; //"auxsupport";
$data["password"] = $password;
$data["sessionid"] ="12345678901234567890";
$data["sessionid"] = "12345678901234567890";
$out = [];
$this->coregrade_webapi(COREGRADE_ACCOUNT_LOGIN, $data, $out);
//print_r( $data );
//print_r( $out );
if (count($out) > 0 && isset($out["sessionid"]) && isset($out["member_id"]) && $out["member_id"] > 0 ) {
// print_r($out);
if (count($out) > 0 && isset($out["sessionid"]) && isset($out["member_id"]) && $out["member_id"] > 0) {
// print_r($out);
//$this->getSessionData($out[0], $session_data); // just for testing
$this->buildUserSession(PHP_API_OK, $out);
$valid_login = true;
$this->session->set_flashdata('in', $out);
redirect("member/index");
$login_done = true;
redirect("member/index");
$login_done = true;
} else {
$error_message = "Invalid Username/Password";
}
@@ -48,12 +48,11 @@ class Auth extends Start_Controller {
// $this->renderMemberPages('view_dash', $data);
// $login_done = true;
// $this->renderMemberPages('view_dash', $data);
// $login_done = true;
// exit();
}
// echo 'hhhh jjjj';
// echo 'hhhh jjjj';
//$this->coregrade_webapi(100, $data, $out);
// print_r($out);
@@ -105,17 +104,28 @@ class Auth extends Start_Controller {
}
public function resetpass() {
//$this->load->view('home/home');
//echo "START RESET 1";
$data = array();
$out = array();
$data["next_page"] = 0;
$data["error_message"] = "";
if ($_POST) {
$data['username'] = trim($this->input->post('username'));
$data["mode"] = RESET_START;
if ($data['username'] != '') {
$this->coregrade_webapi(COREGRADE_START_RESET_PASSWORD, $data, $out);
$data["next_page"] = 100;
} else {
$data["error_message"] = "Please enter a valis username to continue";
}
}
$this->load->view('auth/view_head');
$this->load->view('auth/view_reset_password');
$this->load->view('auth/view_reset_password', $data);
$this->load->view('auth/view_foot');
}
public function logout() {
$this->index();
}
}
+4 -4
View File
@@ -34,7 +34,7 @@ $next_page = isset($next_page) ? $next_page : 0;
<div class="collapse-margin search-content mt-0">
<div class="card-header" id="headingOne" role="button" data-toggle="collapse" data-target="#collapseOne" aria-expanded="false" aria-controls="collapseOne">
<span class="lead collapse-title">
What does royalty free mean?
How Do I Personalize My Learning Platforms?
</span>
</div>
<div id="collapseOne" class="collapse" aria-labelledby="headingOne" data-parent="#accordionExample">
@@ -46,7 +46,7 @@ $next_page = isset($next_page) ? $next_page : 0;
<div class="collapse-margin">
<div class="card-header" id="headingTwo" role="button" data-toggle="collapse" data-target="#collapseTwo" aria-expanded="false" aria-controls="collapseTwo">
<span class="lead collapse-title collapsed">
What do you mean by item and end product?
How Do I create My Cards?
</span>
</div>
<div id="collapseTwo" class="collapse" aria-labelledby="headingTwo" data-parent="#accordionExample">
@@ -70,7 +70,7 @@ $next_page = isset($next_page) ? $next_page : 0;
<div class="collapse-margin search-content">
<div class="card-header" id="headingFour" role="button" data-toggle="collapse" data-target="#collapseFour" aria-expanded="false" aria-controls="collapseFour">
<span class="lead collapse-title collapsed">
What does non-exclusive mean?
How to Add to my Cards?
</span>
</div>
<div id="collapseFour" class="collapse" aria-labelledby="headingFour" data-parent="#accordionExample">
@@ -118,7 +118,7 @@ $next_page = isset($next_page) ? $next_page : 0;
<div class="collapse-margin search-content">
<div class="card-header" id="headingEight" role="button" data-toggle="collapse" data-target="#collapseEight" aria-expanded="false" aria-controls="collapseEight">
<span class="lead collapse-title collapsed">
Can I re-distribute an item? What about under an Extended License?
How Do I Share my Personalized Cards?
</span>
</div>
<div id="collapseEight" class="collapse" aria-labelledby="headingEight" data-parent="#accordionExample">
+7 -7
View File
@@ -44,19 +44,18 @@
<!-- BEGIN: Main Menu-->
<div class="horizontal-menu-wrapper">
<div class="header-navbar navbar-expand-sm navbar navbar-horizontal floating-nav navbar-light navbar-without-dd-arrow navbar-shadow menu-border" role="navigation" data-menu="menu-wrapper">
<div class="header-navbar navbar-expand-sm navbar navbar-horizontal floating-nav navbar-light navbar-without-dd-arrow navbar-shadow menu-border" role="navigation" data-menu="menu-wrapper" style=" background-color: aliceblue;">
<div class="navbar-header">
<ul class="nav navbar-nav flex-row">
<li class="nav-item mr-auto"><a class="navbar-brand" href="/">
<div class="brand-logo"></div>
<h2 class="brand-text mb-0">CoreGrade</h2>
<h2 class="brand-text mb-0" style="padding-left: 20px;">CoreGrade</h2>
</a></li>
<!-- li class="nav-item nav-toggle"><a class="nav-link modern-nav-toggle pr-0" data-toggle="collapse"><i class="feather icon-x d-block d-xl-none font-medium-4 primary toggle-icon"></i><i class="toggle-icon feather icon-disc font-medium-4 d-none d-xl-block collapse-toggle-icon primary" data-ticon="icon-disc"></i></a></li -->
</ul>
</div>
<!-- Horizontal menu content-->
<div class="navbar-container main-menu-content" data-menu="menu-container">
<!-- include ../../../includes/mixins-->
<div class="navbar-container main-menu-content menu-right" data-menu="menu-container">
<ul class="nav navbar-nav" id="main-menu-navigation" data-menu="menu-navigation">
<li class="dropdown nav-item" data-menu="dropdown"><a class="dropdown-toggle nav-link" href="/" data-toggle="dropdown"><i class="feather icon-home"></i><span data-i18n="Dashboard">Home</span></a>
@@ -65,10 +64,11 @@
</li>
</ul>
</li>
</ul>
</div>
</div>
</div>
<!-- END: Main Menu-->
<!-- END: Main Menu-->
@@ -2,7 +2,6 @@
$next_page = isset($next_page) ? $next_page : 0;
?>
<body class="vertical-layout vertical-menu-modern 1-column navbar-floating footer-static bg-full-screen-image blank-page blank-page" data-open="click" data-menu="vertical-menu-modern" data-col="1-column">
<!-- BEGIN: Content-->
<div class="app-content content">
<div class="content-overlay"></div>
@@ -25,24 +25,26 @@ $next_page = isset($next_page) ? $next_page : 0;
<h4 class="mb-0">Reset Password</h4>
</div>
</div>
<p class="px-2">Please enter your new password.</p>
<div class="card-content">
<div class="card-body pt-1">
<?
if ($next_page == 0) {
?>
<form>
<p class="px-2">Please tell us your username.</p>
<form method="POST" action="/auth/resetpass">
<fieldset class="form-label-group">
<input type="text" class="form-control" id="user-email" placeholder="Email" required>
<input type="text" class="form-control" id="user-email" placeholder="Email" name="username" required>
<label for="user-email">Email</label>
</fieldset>
<fieldset class="form-label-group">
if the account is valid, you will receive instruction in your email to continue the reset process.
</fieldset>
<fieldset class="form-label-group">
<?= $error_message ?>
</fieldset>
<div class="row pt-2">
<div class="col-12 col-md-6 mb-1">
@@ -53,10 +55,33 @@ $next_page = isset($next_page) ? $next_page : 0;
</div>
</div>
</form>
<?php
} else if ($next_page == 100) {
?>
<form method="POST" action="/">
<fieldset class="form-label-group">
Check your email <b><?= $username ?></b> for a link to continue this process.
</fieldset>
<fieldset class="form-label-group">
<span style="color:red;">The email will expire in a few minutes if you did not receive the password reset email, please contact us.</span>
</fieldset>
<fieldset class="form-label-group">
<?= $error_message ?>
</fieldset>
<div class="row pt-2">
<div class="col-12 col-md-6 mb-1">
<button type="submit" class="btn btn-primary btn-block px-0">Return Home</button>
</div>
</div>
</form>
<?php
} else {
?>
<form>
<fieldset class="form-label-group">
<input type="text" class="form-control" id="user-email" placeholder="Email" required>
+8 -8
View File
@@ -40,7 +40,7 @@
<link rel="stylesheet" href="/assets/css/responsive.css">
<!-- Favicon -->
<link rel="shortcut icon" type="image/png" href="/assets/img/logo-sm.png">
<link rel="shortcut icon" type="image/png" href="/assets/img/coregrade.ico">
<!-- HTML5 Shim and Respond.js IE8 support of HTML5 elements and media queries -->
<!-- WARNING: Respond.js doesn't work if you view the page via file:// -->
@@ -81,7 +81,7 @@
<li><a href="#pricing" class="smoothscroll">PLANS</a></li>
<li><a href="#download" class="smoothscroll">APP</a></li>
<li><a href="#contact" class="smoothscroll">CONTACT</a></li>
<li style="background-color: #FC6443;" onclick="viewLogin(); return;"><a href="/auth" >ACCOUNT</a></li>
<li style="background-color: #FC6443;" onclick="viewLogin(); return;"><a href="/auth" >START</a></li>
</ul>
</div>
</div>
@@ -200,7 +200,7 @@
<p class="pill-title">You Are</p>
<ul class="pricing-pill wow fadeIn">
<li class="active" data-value="individual"><span>Individual</span></li>
<li data-value="company"><span>Groups</span></li>
<li data-value="company"><span>Need More</span></li>
<!--
<li data-value="tutor"><span>Parents</span></li>
-->
@@ -216,19 +216,20 @@
<span class="price-tag">Free</span>
<h4 class="sublead">Empowering <br> New Skills</h4>
<ul class="pricing-list">
<li><p>Step-by-step Learning Path</p></li>
<li><p>Creative Learning Path</p></li>
<li><p>Stay in the loop</p></li>
<li><p>Accessibility</p></li>
</ul>
<a href="/auth/newuser" onclick="viewLogin(); return;" class="btn btn-default btn-outline">Get Started</a>
</li>
<li id="company">
<h2 class="lead2">Groups</h2>
<h2 class="lead2">CoreGrade Plus</h2>
<span class="price-tag">Contact Us</span>
<h4 class="sublead">Quality support that <br> drives success</h4>
<ul class="pricing-list">
<li><p>Everything Individual + </p></li>
<li><p>Integrations</p></li>
<li><p>Focus on laid-back acquirements</p></li>
<li><p>Flexible Learning</p></li>
<li><p>Personal Assistant</p></li>
</ul>
<a href="/auth/newuser" class="btn btn-default btn-outline">Make me a Pro</a>
@@ -264,7 +265,6 @@
<button class="btn btn-default btn-fill">Join CoreGrade</button>
</form>
</div>
</div>
</div>
</div>
@@ -293,7 +293,7 @@
<div class="row">
<div class="col-xs-12">
<div class="download-app text-center wow fadeIn">
<img src="/assets/img/mobile_slid.png" alt="Mobile Slide">
<!--dimg src="/assets/img/mobile_slid.png" alt="Mobile Slide" -->
</div>
</div>
</div>
+2 -1
View File
@@ -438,7 +438,7 @@ Table of Contents
.subscribe-area {
width: 100%;
height: auto;
background-image: url('../img/subscribe_bg.jpg');
background-image: url('../img/coregrade_subscribe.jpg');
background-repeat: no-repeat;
background-position: center;
background-size: cover;
@@ -489,6 +489,7 @@ Table of Contents
width: 100%;
height: auto;
margin-top: 100px;
background-size: contain;
}
/*
Regular → Executable
View File