Skip to content

Commit

Permalink
added address function
Browse files Browse the repository at this point in the history
  • Loading branch information
soycaringal committed Mar 21, 2019
1 parent 95349f6 commit 83aaa6c
Show file tree
Hide file tree
Showing 3 changed files with 221 additions and 3 deletions.
169 changes: 167 additions & 2 deletions src/controller/profile.php
Original file line number Diff line number Diff line change
Expand Up @@ -267,6 +267,7 @@
//set the class name
$class = 'page-profile-address-create page-profile';

$data = ['item' => $request->getPost()];
//determine the title
$data['title'] = $global->translate('Update Profile');

Expand Down Expand Up @@ -325,6 +326,16 @@
//determine the title
$data['title'] = $global->translate('Update Profile');

$addressId = $request->getStage('address_id');

$request
->setStage('schema', 'address')
->setStage('address_id', $addressId);

$this->trigger('system-model-detail', $request, $response);

$data['item'] = $response->getResults();

$template = dirname(__DIR__) . '/template';
if (is_dir($response->getPage('template_root'))) {
$template = $response->getPage('template_root');
Expand Down Expand Up @@ -364,6 +375,161 @@
});


/**
* Render profile address create page
*
* @param Request $request
* @param Response $response
*/
$this->get('/profile/address/remove/:address_id', function($request, $response) {
$global = $this->package('global');

//----------------------------//
// 2. Render Template
$redirect = '/profile/address';
$request
->setStage('schema', 'address')
->setStage('address_id', $request->getStage('address_id'));

//----------------------------//
// 2. Process Request
$this->trigger('system-model-remove', $request, $response);

if ($response->isError()) {
//add a flash
$this->package('global')->flash($response->getMessage(), 'danger');
$this->package('global')->redirect($redirect);
}

//add a flash
$message = $this->package('global')->translate('Address was Removed');
$this->package('global')->flash($message, 'success');

$this->package('global')->redirect($redirect);
});

/**
* Process the Address Create Page
*
* @param Request $request
* @param Response $response
*/
$this->post('/profile/address/create', function ($request, $response) {
//----------------------------//
// 1. Setup Overrides
//determine route
$route = '/profile/address/create';
if ($request->hasStage('route')) {
$route = $request->getStage('route');
}

//determine redirect
$redirect = '/profile/address';

//----------------------------//
// 2. Security Checks
//need to be online
$this->package('global')->requireLogin();

if ($response->isError()) {
$response->setFlash($response->getMessage(), 'error');
$data['errors'] = $response->getValidation();
}

//csrf check
$this->trigger('csrf-validate', $request, $response);
if ($response->isError()) {
return $this->routeTo('get', $route, $request, $response);
}

//----------------------------//
// 3. Prepare Data
$errors =[];
$data = ['item' => $request->getPost()];

//set the address_id
$request->setStage('address', $request->getStage('address_id'));
$request->setStage('schema', 'address');
//----------------------------//
// 4. Process Request
//trigger the job
$this->trigger('system-model-create', $request, $response);
//----------------------------//
// 5. Interpret Results
if ($response->isError()) {
return $this->routeTo('get', $route, $request, $response);
}

//if we dont want to redirect
if ($redirect === 'false') {
return;
}

//add a flash
$message = $this->package('global')->translate('Address Added');
$this->package('global')->flash($message, 'success');

$this->package('global')->redirect($redirect);
});
/**
* Process the Account Page
*
* @param Request $request
* @param Response $response
*/
$this->post('/profile/address/update/:address_id', function ($request, $response) {
//----------------------------//
// 1. Setup Overrides
//determine route
$route = '/profile/address/update/'. $request->getStage('address_id');
if ($request->hasStage('route')) {
$route = $request->getStage('route');
}

//determine redirect
$redirect = '/profile/address/update/'. $request->getStage('address_id');

//----------------------------//
// 2. Security Checks
//need to be online
$this->package('global')->requireLogin();

//csrf check
$this->trigger('csrf-validate', $request, $response);
if ($response->isError()) {
return $this->routeTo('get', $route, $request, $response);
}

//----------------------------//
// 3. Prepare Data
$errors =[];
$data = ['item' => $request->getPost()];

//set the address_id
$request->setStage('address', $request->getStage('address_id'));
$request->setStage('schema', 'address');
//----------------------------//
// 4. Process Request
//trigger the job
$this->trigger('system-model-update', $request, $response);
//----------------------------//
// 5. Interpret Results
if ($response->isError()) {
return $this->routeTo('get', $route, $request, $response);
}

//if we dont want to redirect
if ($redirect === 'false') {
return;
}

//add a flash
$message = $this->package('global')->translate('Update Successful');
$this->package('global')->flash($message, 'success');

$this->package('global')->redirect($redirect);
});

/**
* Process the Account Page
*
Expand Down Expand Up @@ -427,7 +593,6 @@
// 4. Process Request
//trigger the job
$this->trigger('system-model-update', $request, $response);

//----------------------------//
// 5. Interpret Results
if ($response->isError()) {
Expand Down Expand Up @@ -500,7 +665,7 @@
//----------------------------//
// 4. Process Request
//trigger the job
$this->trigger('system-model-update', $request, $response);cradle()->inspect($response);exit;
$this->trigger('system-model-update', $request, $response);
//----------------------------//
// 5. Interpret Results
if ($response->isError()) {
Expand Down
2 changes: 1 addition & 1 deletion src/template/profile/address/create.html
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,7 @@ <h1 class="mt-4">
</div>
<div class="col-md-9">
<form method="post">
{{#format 'field' 'address'}}
{{#format 'field' 'address' item}}
{{#each formats}}
{{#notin 'address_latitude,address_longitude' @key}}
{{> profile_fieldset}}
Expand Down
53 changes: 53 additions & 0 deletions src/template/profile/address/update.html
Original file line number Diff line number Diff line change
@@ -1 +1,54 @@
<link href="/styles/profile.css" rel="stylesheet" type="text/css" />
<div class="profile-layout container">
<nav aria-label="breadcrumb">
<ol class="breadcrumb">
<li class="breadcrumb-item">
<a href="/">
<i class="fas fa-home"></i> {{_ 'Home'}}
</a>
</li>
<li class="breadcrumb-item">
<a href="/profile/address">
<i class="fas fa-map-marker-alt"></i>
{{_ 'My Addresses'}}
</a>
</li>
<li class="breadcrumb-item active" aria-current="page">
<i class="fas fa-plus"></i>
{{_ 'Add Address'}}
</li>
</ol>
</nav>
<h1 class="mt-4">
<i class="fas fa-plus"></i>
&nbsp;
{{_ 'Add Address'}}
</h1>
<hr />
<div class="row">
<div class="col-md-3">
{{#if profile_image}}
<img src="{{profile_image}}" width="100%" />
{{else}}
<img src="/images/default-avatar.png" width="100%" />
{{/if}}

{{> profile_menu}}
</div>
<div class="col-md-9">
<form method="post">
{{#format 'field' 'address' item}}
{{#each formats}}
{{#notin 'address_latitude,address_longitude' @key}}
{{> profile_fieldset}}
{{/notin}}
{{/each}}
{{/format}}

<div class="form-group mt-2">
<button class="btn btn-primary">{{_ 'Submit'}}</button>
</div>
</form>
</div>
</div>
</div>

0 comments on commit 83aaa6c

Please sign in to comment.