From e58cd81a930d35c0e169eb941e101fb82387dcdb Mon Sep 17 00:00:00 2001
From: Chaoyi Zha
Date: Sat, 12 Dec 2015 12:47:20 -0500
Subject: [PATCH] delegate button actions to parent & add API active toggle
logic
---
.jshintrc | 3 +++
app/Http/Controllers/AjaxController.php | 19 +++++++++++++++++++
app/Http/routes.php | 4 ++--
public/js/admin.js | 7 +++----
public/js/api.js | 3 ++-
public/js/constants.js | 3 +++
resources/views/layouts/base.blade.php | 2 ++
7 files changed, 34 insertions(+), 7 deletions(-)
create mode 100644 .jshintrc
create mode 100644 public/js/constants.js
diff --git a/.jshintrc b/.jshintrc
new file mode 100644
index 0000000..2119fa8
--- /dev/null
+++ b/.jshintrc
@@ -0,0 +1,3 @@
+{
+ "esnext": true
+}
diff --git a/app/Http/Controllers/AjaxController.php b/app/Http/Controllers/AjaxController.php
index 71b0d72..54a0068 100644
--- a/app/Http/Controllers/AjaxController.php
+++ b/app/Http/Controllers/AjaxController.php
@@ -29,5 +29,24 @@ class AjaxController extends Controller {
if (!$this->currIsAdmin()) {
abort(401, 'User not admin.');
}
+
+ $user_to_toggle = $request->input('user_id');
+ $user = User::where('id', $user_id)
+ ->where('active', 1)
+ ->first();
+ if (!$user) {
+ abort(404, 'User not found.');
+ }
+ $current_status = $user->api_active;
+
+ if ($current_status == 1) {
+ $new_status = 0;
+ }
+ else {
+ $new_status = 1;
+ }
+
+ $user->api_active = $new_status;
+ $user->save();
}
}
diff --git a/app/Http/routes.php b/app/Http/routes.php
index adc205f..0c5759c 100644
--- a/app/Http/routes.php
+++ b/app/Http/routes.php
@@ -35,5 +35,5 @@ $app->post('/signup', ['as' => 'psignup', 'uses' => 'UserController@performSignu
$app->post('/shorten', ['as' => 'shorten', 'uses' => 'LinkController@performShorten']);
/* API endpoints */
-$app->post('/api/v2/link_avail_check', ['as' => 'link_check', 'uses' => 'AjaxController@checkLinkAvailability']);
-$app->post('/api/v2/admin/toggle_api_active', ['as' => 'link_check', 'uses' => 'AjaxController@toggleAPIActive']);
+$app->post('/api/v2/link_avail_check', ['as' => 'api_link_check', 'uses' => 'AjaxController@checkLinkAvailability']);
+$app->post('/api/v2/admin/toggle_api_active', ['as' => 'api_toggle_api_active', 'uses' => 'AjaxController@toggleAPIActive']);
diff --git a/public/js/admin.js b/public/js/admin.js
index 8c603bd..13649fc 100644
--- a/public/js/admin.js
+++ b/public/js/admin.js
@@ -46,7 +46,7 @@ $(function () {
{{else}}
False
{{/if}}
- - Active (click to toggle)
+ - Active (click to toggle)
API Key: {{api_key}}
@@ -62,6 +62,7 @@ $(function () {
api_key: api_key,
api_active: api_active,
api_quota: api_quota,
+ user_id: user_id,
title: "API Information for " + username,
body: markup
};
@@ -74,12 +75,10 @@ $(function () {
$('.activate-edit-modal').click(function () {
// activate modal
});
-
- $('.toggle-api-active').click(function () {
+ $('body').delegate('.toggle-api-active', 'click', function () {
var toggle_user_id = $(this).data('user-id');
apiCall('admin/toggle_api_active', {
'user_id': toggle_user_id,
});
});
-
});
diff --git a/public/js/api.js b/public/js/api.js
index ea524d4..d4407e2 100644
--- a/public/js/api.js
+++ b/public/js/api.js
@@ -1,6 +1,7 @@
function apiCall(path, data) {
- var base_api_path = '/api/v2/';
+ var base_api_path = BASE_API_PATH;
var api_path = base_api_path + path;
+ console.log('api call');
$.ajax({
url: api_path,
data: data
diff --git a/public/js/constants.js b/public/js/constants.js
new file mode 100644
index 0000000..a3663dc
--- /dev/null
+++ b/public/js/constants.js
@@ -0,0 +1,3 @@
+/* Polr JS Constants */
+
+const BASE_API_PATH = '/api/v2/';
diff --git a/resources/views/layouts/base.blade.php b/resources/views/layouts/base.blade.php
index a815ef2..9b1dbb9 100644
--- a/resources/views/layouts/base.blade.php
+++ b/resources/views/layouts/base.blade.php
@@ -30,6 +30,8 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+
+
@yield('css')