added categoriesSeeder to databaseSeeder
permissionmanager configed to use App/User
This commit is contained in:
commit
35a0e3123d
|
|
@ -12,5 +12,6 @@ installed
|
|||
_ide_helper.php
|
||||
*.swp
|
||||
|
||||
|
||||
# Do not include backup lang files
|
||||
resources/lang/*/[a-zA-Z]*20[0-9][0-9][0-1][0-9][0-3][0-9]_[0-2][0-9][0-5][0-9][0-5][0-9].php
|
||||
16
Gruntfile.js
16
Gruntfile.js
|
|
@ -7,6 +7,7 @@ module.exports = function (grunt) {
|
|||
development: {
|
||||
options: {
|
||||
compress: true,
|
||||
javascriptEnabled: true,
|
||||
},
|
||||
files: {
|
||||
"./public/assets/stylesheet/application.css": "./public/assets/stylesheet/application.less",
|
||||
|
|
@ -70,17 +71,22 @@ module.exports = function (grunt) {
|
|||
}
|
||||
},
|
||||
},
|
||||
phpunit: {
|
||||
classes: {},
|
||||
options: {}
|
||||
},
|
||||
watch: {
|
||||
scripts: {
|
||||
files: ['./public/assets/**/*.js'],
|
||||
tasks: ['default'],
|
||||
options: {
|
||||
spawn: false,
|
||||
},
|
||||
},
|
||||
}
|
||||
});
|
||||
|
||||
// Plugin loading
|
||||
grunt.loadNpmTasks('grunt-contrib-concat');
|
||||
grunt.loadNpmTasks('grunt-contrib-less');
|
||||
grunt.loadNpmTasks('grunt-contrib-uglify');
|
||||
//grunt.loadNpmTasks('grunt-phpunit');
|
||||
grunt.loadNpmTasks('grunt-contrib-watch');
|
||||
// Task definition
|
||||
grunt.registerTask('default', ['less', 'concat']);
|
||||
grunt.registerTask('deploy', ['less', 'concat', 'uglify']);
|
||||
|
|
|
|||
|
|
@ -0,0 +1,28 @@
|
|||
<?php
|
||||
if ( ! function_exists('sanitise')) {
|
||||
/**
|
||||
* @param string $input
|
||||
* @return string
|
||||
*/
|
||||
function sanitise($input)
|
||||
{
|
||||
$clear = clean($input); // Package to remove code "mews/purifier"
|
||||
$clear = strip_tags($clear);
|
||||
$clear = html_entity_decode($clear);
|
||||
$clear = urldecode($clear);
|
||||
$clear = preg_replace('~[\r\n\t]+~', ' ', trim($clear));
|
||||
$clear = preg_replace('/ +/', ' ', $clear);
|
||||
return $clear;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param string $input
|
||||
* @return string
|
||||
*/
|
||||
function clean_whitespace($input)
|
||||
{
|
||||
$clear = preg_replace('~[\r\n\t]+~', ' ', trim($input));
|
||||
$clear = preg_replace('/ +/', ' ', $clear);
|
||||
return $clear;
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,117 @@
|
|||
<?php
|
||||
|
||||
namespace App\Http\Controllers;
|
||||
|
||||
use App\Models\Event;
|
||||
use App\Models\EventAccessCodes;
|
||||
use Illuminate\Contracts\View\Factory;
|
||||
use Illuminate\Http\JsonResponse;
|
||||
use Illuminate\Http\Request;
|
||||
use Illuminate\View\View;
|
||||
|
||||
/*
|
||||
Attendize.com - Event Management & Ticketing
|
||||
*/
|
||||
|
||||
class EventAccessCodesController extends MyBaseController
|
||||
{
|
||||
|
||||
/**
|
||||
* @param $event_id
|
||||
* @return mixed
|
||||
*/
|
||||
public function show($event_id)
|
||||
{
|
||||
$event = Event::scope()->findOrFail($event_id);
|
||||
return view('ManageEvent.AccessCodes', [
|
||||
'event' => $event,
|
||||
]);
|
||||
}
|
||||
|
||||
/**
|
||||
* @param $event_id
|
||||
* @return Factory|View
|
||||
*/
|
||||
public function showCreate($event_id)
|
||||
{
|
||||
return view('ManageEvent.Modals.CreateAccessCode', [
|
||||
'event' => Event::scope()->find($event_id),
|
||||
]);
|
||||
}
|
||||
|
||||
/**
|
||||
* Creates a ticket
|
||||
*
|
||||
* @param Request $request
|
||||
* @param $event_id
|
||||
* @return JsonResponse
|
||||
*/
|
||||
public function postCreate(Request $request, $event_id)
|
||||
{
|
||||
$eventAccessCode = new EventAccessCodes();
|
||||
|
||||
if (!$eventAccessCode->validate($request->all())) {
|
||||
return response()->json([
|
||||
'status' => 'error',
|
||||
'messages' => $eventAccessCode->errors(),
|
||||
]);
|
||||
}
|
||||
|
||||
// Checks for no duplicates
|
||||
$newAccessCode = strtoupper(strip_tags($request->get('code')));
|
||||
if (EventAccessCodes::findFromCode($newAccessCode, $event_id)->count() > 0) {
|
||||
return response()->json([
|
||||
'status' => 'error',
|
||||
'messages' => [
|
||||
'code' => [ trans('AccessCodes.unique_error') ],
|
||||
],
|
||||
]);
|
||||
}
|
||||
|
||||
// Saves the new access code if validation and dupe check passed
|
||||
$eventAccessCode->event_id = $event_id;
|
||||
$eventAccessCode->code = $newAccessCode;
|
||||
$eventAccessCode->save();
|
||||
|
||||
session()->flash('message', trans('AccessCodes.success_message'));
|
||||
|
||||
return response()->json([
|
||||
'status' => 'success',
|
||||
'id' => $eventAccessCode->id,
|
||||
'message' => trans("Controllers.refreshing"),
|
||||
'redirectUrl' => route('showEventAccessCodes', [ 'event_id' => $event_id ]),
|
||||
]);
|
||||
}
|
||||
|
||||
/**
|
||||
* @param integer $event_id
|
||||
* @param integer $access_code_id
|
||||
* @return JsonResponse
|
||||
* @throws \Exception
|
||||
*/
|
||||
public function postDelete($event_id, $access_code_id)
|
||||
{
|
||||
/** @var Event $event */
|
||||
$event = Event::scope()->findOrFail($event_id);
|
||||
|
||||
if ($event->hasAccessCode($access_code_id)) {
|
||||
/** @var EventAccessCodes $accessCode */
|
||||
$accessCode = EventAccessCodes::find($access_code_id);
|
||||
if ($accessCode->usage_count > 0) {
|
||||
return response()->json([
|
||||
'status' => 'error',
|
||||
'message' => trans('AccessCodes.cannot_delete_used_code'),
|
||||
]);
|
||||
}
|
||||
$accessCode->delete();
|
||||
}
|
||||
|
||||
session()->flash('message', trans('AccessCodes.delete_message'));
|
||||
|
||||
return response()->json([
|
||||
'status' => 'success',
|
||||
'message' => trans("Controllers.refreshing"),
|
||||
'redirectUrl' => route('showEventAccessCodes', [ 'event_id' => $event_id ]),
|
||||
]);
|
||||
}
|
||||
}
|
||||
|
|
@ -591,6 +591,7 @@ class EventAttendeesController extends MyBaseController
|
|||
'attendees.first_name',
|
||||
'attendees.last_name',
|
||||
'attendees.email',
|
||||
'attendees.private_reference_number',
|
||||
'orders.order_reference',
|
||||
'tickets.title',
|
||||
'orders.created_at',
|
||||
|
|
@ -607,6 +608,7 @@ class EventAttendeesController extends MyBaseController
|
|||
'First Name',
|
||||
'Last Name',
|
||||
'Email',
|
||||
'Ticket ID',
|
||||
'Order Reference',
|
||||
'Ticket Type',
|
||||
'Purchase Date',
|
||||
|
|
|
|||
|
|
@ -168,7 +168,7 @@ class EventCheckInController extends MyBaseController
|
|||
if ($attendee->has_arrived) {
|
||||
return response()->json([
|
||||
'status' => 'error',
|
||||
'message' => trans("Controllers.attendee_already_checked_in", ["time"=> $attendee->arrival_time->format(env("DEFAULT_DATETIME_FORMAT"))])
|
||||
'message' => trans("Controllers.attendee_already_checked_in", ["time"=> $attendee->arrival_time->format(config("attendize.default_datetime_format"))])
|
||||
]);
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -183,10 +183,17 @@ class EventCheckoutController extends Controller
|
|||
if (config('attendize.enable_dummy_payment_gateway') == TRUE) {
|
||||
$activeAccountPaymentGateway = new AccountPaymentGateway();
|
||||
$activeAccountPaymentGateway->fill(['payment_gateway_id' => config('attendize.payment_gateway_dummy')]);
|
||||
$paymentGateway= $activeAccountPaymentGateway;
|
||||
$paymentGateway = $activeAccountPaymentGateway;
|
||||
} else {
|
||||
$activeAccountPaymentGateway = $event->account->active_payment_gateway->count() ? $event->account->active_payment_gateway->firstOrFail() : false;
|
||||
$paymentGateway = $event->account->active_payment_gateway->count() ? $event->account->active_payment_gateway->payment_gateway : false;
|
||||
$activeAccountPaymentGateway = $event->account->getGateway($event->account->payment_gateway_id);
|
||||
//if no payment gateway configured and no offline pay, don't go to the next step and show user error
|
||||
if (empty($activeAccountPaymentGateway) && !$event->enable_offline_payments) {
|
||||
return response()->json([
|
||||
'status' => 'error',
|
||||
'message' => 'No payment gateway configured',
|
||||
]);
|
||||
}
|
||||
$paymentGateway = $activeAccountPaymentGateway ? $activeAccountPaymentGateway->payment_gateway : false;
|
||||
}
|
||||
|
||||
/*
|
||||
|
|
@ -299,6 +306,28 @@ class EventCheckoutController extends Controller
|
|||
$order->rules = $order->rules + $validation_rules;
|
||||
$order->messages = $order->messages + $validation_messages;
|
||||
|
||||
if ($request->has('is_business') && $request->get('is_business')) {
|
||||
// Dynamic validation on the new business fields, only gets validated if business selected
|
||||
$businessRules = [
|
||||
'business_name' => 'required',
|
||||
'business_tax_number' => 'required',
|
||||
'business_address_line1' => 'required',
|
||||
'business_address_city' => 'required',
|
||||
'business_address_code' => 'required',
|
||||
];
|
||||
|
||||
$businessMessages = [
|
||||
'business_name.required' => 'Please enter a valid business name',
|
||||
'business_tax_number.required' => 'Please enter a valid business tax number',
|
||||
'business_address_line1.required' => 'Please enter a valid street address',
|
||||
'business_address_city.required' => 'Please enter a valid city',
|
||||
'business_address_code.required' => 'Please enter a valid code',
|
||||
];
|
||||
|
||||
$order->rules = $order->rules + $businessRules;
|
||||
$order->messages = $order->messages + $businessMessages;
|
||||
}
|
||||
|
||||
if (!$order->validate($request->all())) {
|
||||
return response()->json([
|
||||
'status' => 'error',
|
||||
|
|
@ -382,7 +411,7 @@ class EventCheckoutController extends Controller
|
|||
break;
|
||||
default:
|
||||
Log::error('No payment gateway configured.');
|
||||
return repsonse()->json([
|
||||
return response()->json([
|
||||
'status' => 'error',
|
||||
'message' => 'No payment gateway configured.'
|
||||
]);
|
||||
|
|
@ -456,7 +485,7 @@ class EventCheckoutController extends Controller
|
|||
{
|
||||
|
||||
if ($request->get('is_payment_cancelled') == '1') {
|
||||
session()->flash('message', 'You cancelled your payment. You may try again.');
|
||||
session()->flash('message', trans('Event.payment_cancelled'));
|
||||
return response()->redirectToRoute('showEventCheckout', [
|
||||
'event_id' => $event_id,
|
||||
'is_payment_cancelled' => 1,
|
||||
|
|
@ -508,7 +537,6 @@ class EventCheckoutController extends Controller
|
|||
$attendee_increment = 1;
|
||||
$ticket_questions = isset($request_data['ticket_holder_questions']) ? $request_data['ticket_holder_questions'] : [];
|
||||
|
||||
|
||||
/*
|
||||
* Create the order
|
||||
*/
|
||||
|
|
@ -518,9 +546,9 @@ class EventCheckoutController extends Controller
|
|||
if ($ticket_order['order_requires_payment'] && !isset($request_data['pay_offline'])) {
|
||||
$order->payment_gateway_id = $ticket_order['payment_gateway']->id;
|
||||
}
|
||||
$order->first_name = strip_tags($request_data['order_first_name']);
|
||||
$order->last_name = strip_tags($request_data['order_last_name']);
|
||||
$order->email = $request_data['order_email'];
|
||||
$order->first_name = sanitise($request_data['order_first_name']);
|
||||
$order->last_name = sanitise($request_data['order_last_name']);
|
||||
$order->email = sanitise($request_data['order_email']);
|
||||
$order->order_status_id = isset($request_data['pay_offline']) ? config('attendize.order_awaiting_payment') : config('attendize.order_complete');
|
||||
$order->amount = $ticket_order['order_total'];
|
||||
$order->booking_fee = $ticket_order['booking_fee'];
|
||||
|
|
@ -530,6 +558,19 @@ class EventCheckoutController extends Controller
|
|||
$order->event_id = $ticket_order['event_id'];
|
||||
$order->is_payment_received = isset($request_data['pay_offline']) ? 0 : 1;
|
||||
|
||||
// Business details is selected, we need to save the business details
|
||||
if (isset($request_data['is_business']) && (bool)$request_data['is_business']) {
|
||||
$order->is_business = $request_data['is_business'];
|
||||
$order->business_name = sanitise($request_data['business_name']);
|
||||
$order->business_tax_number = sanitise($request_data['business_tax_number']);
|
||||
$order->business_address_line_one = sanitise($request_data['business_address_line1']);
|
||||
$order->business_address_line_two = sanitise($request_data['business_address_line2']);
|
||||
$order->business_address_state_province = sanitise($request_data['business_address_state']);
|
||||
$order->business_address_city = sanitise($request_data['business_address_city']);
|
||||
$order->business_address_code = sanitise($request_data['business_address_code']);
|
||||
|
||||
}
|
||||
|
||||
// Calculating grand total including tax
|
||||
$orderService = new OrderService($ticket_order['order_total'], $ticket_order['total_booking_fee'], $event);
|
||||
$orderService->calculateFinalCosts();
|
||||
|
|
@ -666,6 +707,11 @@ class EventCheckoutController extends Controller
|
|||
//forget the order in the session
|
||||
session()->forget('ticket_order_' . $event->id);
|
||||
|
||||
/*
|
||||
* Remove any tickets the user has reserved after they have been ordered for the user
|
||||
*/
|
||||
ReservedTickets::where('session_id', '=', session()->getId())->delete();
|
||||
|
||||
// Queue up some tasks - Emails to be sent, PDFs etc.
|
||||
Log::info('Firing the event');
|
||||
event(new OrderCompletedEvent($order));
|
||||
|
|
|
|||
|
|
@ -11,6 +11,7 @@ use Illuminate\Http\Request;
|
|||
use Image;
|
||||
use Log;
|
||||
use Validator;
|
||||
use Spatie\GoogleCalendar\Event as GCEvent;
|
||||
|
||||
class EventController extends MyBaseController
|
||||
{
|
||||
|
|
@ -222,10 +223,13 @@ class EventController extends MyBaseController
|
|||
}
|
||||
|
||||
$event->is_live = $request->get('is_live');
|
||||
$event->currency_id = $request->get('currency_id');
|
||||
$event->title = $request->get('title');
|
||||
$event->description = strip_tags($request->get('description'));
|
||||
$event->start_date = $request->get('start_date');
|
||||
$event->category_id = $request->get('category_id');
|
||||
$event->google_tag_manager_code = $request->get('google_tag_manager_code');
|
||||
|
||||
/*
|
||||
* If the google place ID is the same as before then don't update the venue
|
||||
*/
|
||||
|
|
@ -266,6 +270,7 @@ class EventController extends MyBaseController
|
|||
}
|
||||
|
||||
$event->end_date = $request->get('end_date');
|
||||
$event->event_image_position = $request->get('event_image_position');
|
||||
|
||||
if ($request->get('remove_current_image') == '1') {
|
||||
EventImage::where('event_id', '=', $event->id)->delete();
|
||||
|
|
@ -342,4 +347,20 @@ class EventController extends MyBaseController
|
|||
]);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Puplish event and redirect
|
||||
* @param Integer|false $event_id
|
||||
* @return \Illuminate\Http\RedirectResponse
|
||||
*/
|
||||
public function makeEventLive($event_id = false) {
|
||||
$event = Event::scope()->findOrFail($event_id);
|
||||
$event->is_live = 1;
|
||||
$event->save();
|
||||
\Session::flash('message', trans('Event.go_live'));
|
||||
|
||||
return redirect()->action(
|
||||
'EventDashboardController@showDashboard', ['event_id' => $event_id]
|
||||
);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -6,6 +6,7 @@ use App\Models\Category;
|
|||
use App\Models\Event;
|
||||
use File;
|
||||
use Illuminate\Http\Request;
|
||||
use App\Models\Currency;
|
||||
use Image;
|
||||
use Validator;
|
||||
|
||||
|
|
@ -21,6 +22,7 @@ class EventCustomizeController extends MyBaseController
|
|||
public function showCustomize($event_id = '', $tab = '')
|
||||
{
|
||||
$data = $this->getEventViewData($event_id, [
|
||||
'currencies' => Currency::pluck('title', 'id'),
|
||||
'available_bg_images' => $this->getAvailableBackgroundImages(),
|
||||
'available_bg_images_thumbs' => $this->getAvailableBackgroundImagesThumbs(),
|
||||
'tab' => $tab,
|
||||
|
|
|
|||
|
|
@ -2,12 +2,12 @@
|
|||
|
||||
namespace App\Http\Controllers;
|
||||
|
||||
use DateTime;
|
||||
use DatePeriod;
|
||||
use DateInterval;
|
||||
use Carbon\Carbon;
|
||||
use App\Models\Event;
|
||||
use App\Models\EventStats;
|
||||
use Carbon\Carbon;
|
||||
use DateInterval;
|
||||
use DatePeriod;
|
||||
use DateTime;
|
||||
|
||||
class EventDashboardController extends MyBaseController
|
||||
{
|
||||
|
|
@ -89,4 +89,15 @@ class EventDashboardController extends MyBaseController
|
|||
|
||||
return view('ManageEvent.Dashboard', $data);
|
||||
}
|
||||
|
||||
/**
|
||||
* Redirect to event dashboard
|
||||
* @param Integer|false $event_id
|
||||
* @return \Illuminate\Http\RedirectResponse
|
||||
*/
|
||||
public function redirectToDashboard($event_id = false) {
|
||||
return redirect()->action(
|
||||
'EventDashboardController@showDashboard', ['event_id' => $event_id]
|
||||
);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -350,10 +350,9 @@ class EventOrdersController extends MyBaseController
|
|||
|
||||
$excel->sheet('orders_sheet_1', function ($sheet) use ($event) {
|
||||
|
||||
\DB::connection()->setFetchMode(\PDO::FETCH_ASSOC);
|
||||
$yes = strtoupper(trans("basic.yes"));
|
||||
$no = strtoupper(trans("basic.no"));
|
||||
$data = DB::table('orders')
|
||||
$orderRows = DB::table('orders')
|
||||
->where('orders.event_id', '=', $event->id)
|
||||
->where('orders.event_id', '=', $event->id)
|
||||
->select([
|
||||
|
|
@ -367,9 +366,14 @@ class EventOrdersController extends MyBaseController
|
|||
'orders.amount_refunded',
|
||||
'orders.created_at',
|
||||
])->get();
|
||||
//DB::raw("(CASE WHEN UNIX_TIMESTAMP(`attendees.arrival_time`) = 0 THEN '---' ELSE 'd' END) AS `attendees.arrival_time`"))
|
||||
|
||||
$sheet->fromArray($data);
|
||||
$exportedOrders = $orderRows->toArray();
|
||||
|
||||
array_walk($exportedOrders, function(&$value) {
|
||||
$value = (array)$value;
|
||||
});
|
||||
|
||||
$sheet->fromArray($exportedOrders);
|
||||
|
||||
// Add headings to first row
|
||||
$sheet->row(1, [
|
||||
|
|
|
|||
|
|
@ -111,6 +111,15 @@ class EventTicketsController extends MyBaseController
|
|||
|
||||
$ticket->save();
|
||||
|
||||
// Attach the access codes to the ticket if it's hidden and the code ids have come from the front
|
||||
if ($ticket->is_hidden) {
|
||||
$ticketAccessCodes = $request->get('ticket_access_codes', []);
|
||||
if (empty($ticketAccessCodes) === false) {
|
||||
// Sync the access codes on the ticket
|
||||
$ticket->event_access_codes()->attach($ticketAccessCodes);
|
||||
}
|
||||
}
|
||||
|
||||
session()->flash('message', 'Successfully Created Ticket');
|
||||
|
||||
return response()->json([
|
||||
|
|
@ -223,6 +232,9 @@ class EventTicketsController extends MyBaseController
|
|||
]);
|
||||
}
|
||||
|
||||
// Check if the ticket visibility changed on update
|
||||
$ticketPreviouslyHidden = (bool)$ticket->is_hidden;
|
||||
|
||||
$ticket->title = $request->get('title');
|
||||
$ticket->quantity_available = !$request->get('quantity_available') ? null : $request->get('quantity_available');
|
||||
$ticket->price = $request->get('price');
|
||||
|
|
@ -235,6 +247,19 @@ class EventTicketsController extends MyBaseController
|
|||
|
||||
$ticket->save();
|
||||
|
||||
// Attach the access codes to the ticket if it's hidden and the code ids have come from the front
|
||||
if ($ticket->is_hidden) {
|
||||
$ticketAccessCodes = $request->get('ticket_access_codes', []);
|
||||
if (empty($ticketAccessCodes) === false) {
|
||||
// Sync the access codes on the ticket
|
||||
$ticket->event_access_codes()->detach();
|
||||
$ticket->event_access_codes()->attach($ticketAccessCodes);
|
||||
}
|
||||
} else if ($ticketPreviouslyHidden) {
|
||||
// Delete access codes on ticket if the visibility changed to visible
|
||||
$ticket->event_access_codes()->detach();
|
||||
}
|
||||
|
||||
return response()->json([
|
||||
'status' => 'success',
|
||||
'id' => $ticket->id,
|
||||
|
|
|
|||
|
|
@ -5,6 +5,7 @@ namespace App\Http\Controllers;
|
|||
use App\Attendize\Utils;
|
||||
use App\Models\Affiliate;
|
||||
use App\Models\Event;
|
||||
use App\Models\EventAccessCodes;
|
||||
use App\Models\EventStats;
|
||||
use Auth;
|
||||
use Cookie;
|
||||
|
|
@ -32,8 +33,8 @@ class EventViewController extends Controller
|
|||
}
|
||||
|
||||
$data = [
|
||||
'event' => $event,
|
||||
'tickets' => $event->tickets()->where('is_hidden', 0)->orderBy('sort_order', 'asc')->get(),
|
||||
'event' => $event,
|
||||
'tickets' => $event->tickets()->orderBy('sort_order', 'asc')->get(),
|
||||
'is_embedded' => 0,
|
||||
];
|
||||
/*
|
||||
|
|
@ -136,4 +137,47 @@ class EventViewController extends Controller
|
|||
'Content-Disposition' => 'attachment; filename="event.ics'
|
||||
]);
|
||||
}
|
||||
|
||||
/**
|
||||
* @param Request $request
|
||||
* @param $event_id
|
||||
* @return \Illuminate\Http\JsonResponse
|
||||
*/
|
||||
public function postShowHiddenTickets(Request $request, $event_id)
|
||||
{
|
||||
$event = Event::findOrFail($event_id);
|
||||
|
||||
$accessCode = strtoupper(strip_tags($request->get('access_code')));
|
||||
if (!$accessCode) {
|
||||
return response()->json([
|
||||
'status' => 'error',
|
||||
'message' => trans('AccessCodes.valid_code_required'),
|
||||
]);
|
||||
}
|
||||
|
||||
$unlockedHiddenTickets = $event->tickets()
|
||||
->where('is_hidden', true)
|
||||
->orderBy('sort_order', 'asc')
|
||||
->get()
|
||||
->filter(function($ticket) use ($accessCode) {
|
||||
// Only return the hidden tickets that match the access code
|
||||
return ($ticket->event_access_codes()->where('code', $accessCode)->get()->count() > 0);
|
||||
});
|
||||
|
||||
if ($unlockedHiddenTickets->count() === 0) {
|
||||
return response()->json([
|
||||
'status' => 'error',
|
||||
'message' => trans('AccessCodes.no_tickets_matched'),
|
||||
]);
|
||||
}
|
||||
|
||||
// Bump usage count
|
||||
EventAccessCodes::logUsage($event_id, $accessCode);
|
||||
|
||||
return view('Public.ViewEvent.Partials.EventHiddenTicketsSelection', [
|
||||
'event' => $event,
|
||||
'tickets' => $unlockedHiddenTickets,
|
||||
'is_embedded' => 0,
|
||||
]);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -0,0 +1,18 @@
|
|||
<?php
|
||||
|
||||
namespace App\Http\Controllers;
|
||||
|
||||
use Illuminate\Http\Request;
|
||||
|
||||
class IndexController extends Controller
|
||||
{
|
||||
/**
|
||||
* redirect index page
|
||||
* @param Request $request http request
|
||||
* @return \Illuminate\Http\RedirectResponse
|
||||
*/
|
||||
public function showIndex(Request $request)
|
||||
{
|
||||
return redirect()->route('showSelectOrganiser');
|
||||
}
|
||||
}
|
||||
|
|
@ -222,7 +222,7 @@ class InstallerController extends Controller
|
|||
|
||||
//force laravel to regenerate a new key (see key:generate sources)
|
||||
Config::set('app.key', $app_key);
|
||||
Artisan::call('key:generate');
|
||||
Artisan::call('key:generate', ['--force' => true]);
|
||||
Artisan::call('migrate', ['--force' => true]);
|
||||
if (Timezone::count() == 0) {
|
||||
Artisan::call('db:seed', ['--force' => true]);
|
||||
|
|
|
|||
|
|
@ -133,12 +133,6 @@ class ManageAccountController extends MyBaseController
|
|||
case config('attendize.payment_gateway_paypal') : //PayPal
|
||||
$config = $request->get('paypal');
|
||||
break;
|
||||
case config('attendize.payment_gateway_coinbase') : //BitPay
|
||||
$config = $request->get('coinbase');
|
||||
break;
|
||||
case config('attendize.payment_gateway_migs') : //MIGS
|
||||
$config = $request->get('migs');
|
||||
break;
|
||||
}
|
||||
|
||||
$account_payment_gateway = AccountPaymentGateway::firstOrNew(
|
||||
|
|
@ -146,6 +140,7 @@ class ManageAccountController extends MyBaseController
|
|||
'payment_gateway_id' => $gateway_id,
|
||||
'account_id' => $account->id,
|
||||
]);
|
||||
|
||||
$account_payment_gateway->config = $config;
|
||||
$account_payment_gateway->account_id = $account->id;
|
||||
$account_payment_gateway->payment_gateway_id = $gateway_id;
|
||||
|
|
|
|||
|
|
@ -48,18 +48,19 @@ class OrganiserCustomizeController extends MyBaseController
|
|||
]);
|
||||
}
|
||||
|
||||
$organiser->name = $request->get('name');
|
||||
$organiser->about = $request->get('about');
|
||||
$organiser->name = $request->get('name');
|
||||
$organiser->about = $request->get('about');
|
||||
$organiser->google_analytics_code = $request->get('google_analytics_code');
|
||||
$organiser->email = $request->get('email');
|
||||
$organiser->google_tag_manager_code = $request->get('google_tag_manager_code');
|
||||
$organiser->email = $request->get('email');
|
||||
$organiser->enable_organiser_page = $request->get('enable_organiser_page');
|
||||
$organiser->facebook = $request->get('facebook');
|
||||
$organiser->twitter = $request->get('twitter');
|
||||
$organiser->facebook = $request->get('facebook');
|
||||
$organiser->twitter = $request->get('twitter');
|
||||
|
||||
$organiser->tax_name = $request->get('tax_name');
|
||||
$organiser->tax_value = $request->get('tax_value');
|
||||
$organiser->tax_id = $request->get('tax_id');
|
||||
$organiser->charge_tax = ($request->get('charge_tax') == 1) ? 1 : 0;
|
||||
$organiser->tax_name = $request->get('tax_name');
|
||||
$organiser->tax_value = $request->get('tax_value');
|
||||
$organiser->tax_id = $request->get('tax_id');
|
||||
$organiser->charge_tax = ($request->get('charge_tax') == 1) ? 1 : 0;
|
||||
|
||||
if ($request->get('remove_current_image') == '1') {
|
||||
$organiser->logo_path = '';
|
||||
|
|
@ -88,7 +89,7 @@ class OrganiserCustomizeController extends MyBaseController
|
|||
*/
|
||||
public function postEditOrganiserPageDesign(Request $request, $organiser_id)
|
||||
{
|
||||
$event = Organiser::scope()->findOrFail($organiser_id);
|
||||
$organiser = Organiser::scope()->findOrFail($organiser_id);
|
||||
|
||||
$rules = [
|
||||
'page_bg_color' => ['required'],
|
||||
|
|
@ -109,11 +110,11 @@ class OrganiserCustomizeController extends MyBaseController
|
|||
]);
|
||||
}
|
||||
|
||||
$event->page_bg_color = $request->get('page_bg_color');
|
||||
$event->page_header_bg_color = $request->get('page_header_bg_color');
|
||||
$event->page_text_color = $request->get('page_text_color');
|
||||
$organiser->page_bg_color = $request->get('page_bg_color');
|
||||
$organiser->page_header_bg_color = $request->get('page_header_bg_color');
|
||||
$organiser->page_text_color = $request->get('page_text_color');
|
||||
|
||||
$event->save();
|
||||
$organiser->save();
|
||||
|
||||
return response()->json([
|
||||
'status' => 'success',
|
||||
|
|
|
|||
|
|
@ -44,11 +44,4 @@ Route::group(['prefix' => 'api', 'middleware' => 'auth:api'], function () {
|
|||
*/
|
||||
|
||||
|
||||
Route::get('/', function () {
|
||||
return response()->json([
|
||||
'Hello' => Auth::guard('api')->user()->full_name . '!'
|
||||
]);
|
||||
});
|
||||
|
||||
|
||||
});
|
||||
});
|
||||
|
|
|
|||
|
|
@ -41,16 +41,6 @@ Route::group(
|
|||
'as' => 'logout',
|
||||
]);
|
||||
|
||||
|
||||
Route::get('/terms_and_conditions', [
|
||||
'as' => 'termsAndConditions',
|
||||
function () {
|
||||
return 'TODO: add terms and cond';
|
||||
}
|
||||
]);
|
||||
|
||||
|
||||
|
||||
Route::group(['middleware' => ['installed']], function () {
|
||||
|
||||
/*
|
||||
|
|
@ -154,6 +144,11 @@ Route::group(
|
|||
'uses' => 'EventViewController@postContactOrganiser',
|
||||
]);
|
||||
|
||||
Route::post('/{event_id}/show_hidden', [
|
||||
'as' => 'postShowHiddenTickets',
|
||||
'uses' => 'EventViewController@postShowHiddenTickets',
|
||||
]);
|
||||
|
||||
/*
|
||||
* Used for previewing designs in the backend. Doesn't log page views etc.
|
||||
*/
|
||||
|
|
@ -330,28 +325,17 @@ Route::group(
|
|||
]
|
||||
);
|
||||
|
||||
Route::get('{event_id}', function ($event_id) {
|
||||
return Redirect::route('showEventDashboard', [
|
||||
'event_id' => $event_id,
|
||||
]);
|
||||
});
|
||||
Route::get('{event_id}/', [
|
||||
'uses' => 'EventDashboardController@redirectToDashboard',
|
||||
]
|
||||
);
|
||||
|
||||
/*
|
||||
* @todo Move to a controller
|
||||
*/
|
||||
Route::get('{event_id}/go_live', [
|
||||
'as' => 'MakeEventLive',
|
||||
function ($event_id) {
|
||||
$event = \App\Models\Event::scope()->findOrFail($event_id);
|
||||
$event->is_live = 1;
|
||||
$event->save();
|
||||
\Session::flash('message',
|
||||
'Event Successfully Made Live! You can undo this action in event settings page.');
|
||||
|
||||
return Redirect::route('showEventDashboard', [
|
||||
'event_id' => $event_id,
|
||||
]);
|
||||
}
|
||||
Route::get('{event_id}/go_live', [
|
||||
'as' => 'MakeEventLive',
|
||||
'uses' => 'EventController@makeEventLive',
|
||||
]);
|
||||
|
||||
/*
|
||||
|
|
@ -568,12 +552,10 @@ Route::group(
|
|||
'as' => 'showEventCustomize',
|
||||
'uses' => 'EventCustomizeController@showCustomize',
|
||||
]);
|
||||
|
||||
Route::get('{event_id}/customize/{tab?}', [
|
||||
'as' => 'showEventCustomizeTab',
|
||||
'uses' => 'EventCustomizeController@showCustomize',
|
||||
]);
|
||||
|
||||
Route::post('{event_id}/customize/order_page', [
|
||||
'as' => 'postEditEventOrderPage',
|
||||
'uses' => 'EventCustomizeController@postEditEventOrderPage',
|
||||
|
|
@ -590,13 +572,11 @@ Route::group(
|
|||
'as' => 'postEditEventSocial',
|
||||
'uses' => 'EventCustomizeController@postEditEventSocial',
|
||||
]);
|
||||
|
||||
Route::post('{event_id}/customize/fees', [
|
||||
'as' => 'postEditEventFees',
|
||||
'uses' => 'EventCustomizeController@postEditEventFees',
|
||||
]);
|
||||
|
||||
|
||||
/*
|
||||
* -------
|
||||
* Event Widget page
|
||||
|
|
@ -607,6 +587,31 @@ Route::group(
|
|||
'uses' => 'EventWidgetsController@showEventWidgets',
|
||||
]);
|
||||
|
||||
/*
|
||||
* -------
|
||||
* Event Access Codes page
|
||||
* -------
|
||||
*/
|
||||
Route::get('{event_id}/access_codes', [
|
||||
'as' => 'showEventAccessCodes',
|
||||
'uses' => 'EventAccessCodesController@show',
|
||||
]);
|
||||
|
||||
Route::get('{event_id}/access_codes/create', [
|
||||
'as' => 'showCreateEventAccessCode',
|
||||
'uses' => 'EventAccessCodesController@showCreate',
|
||||
]);
|
||||
|
||||
Route::post('{event_id}/access_codes/create', [
|
||||
'as' => 'postCreateEventAccessCode',
|
||||
'uses' => 'EventAccessCodesController@postCreate',
|
||||
]);
|
||||
|
||||
Route::post('{event_id}/access_codes/{access_code_id}/delete', [
|
||||
'as' => 'postDeleteEventAccessCode',
|
||||
'uses' => 'EventAccessCodesController@postDelete',
|
||||
]);
|
||||
|
||||
/*
|
||||
* -------
|
||||
* Event Survey page
|
||||
|
|
|
|||
|
|
@ -7,6 +7,7 @@ use App\Models\Order;
|
|||
use Illuminate\Contracts\Queue\ShouldQueue;
|
||||
use Illuminate\Queue\InteractsWithQueue;
|
||||
use Illuminate\Queue\SerializesModels;
|
||||
use Log;
|
||||
|
||||
class SendOrderNotification extends Job implements ShouldQueue
|
||||
{
|
||||
|
|
|
|||
|
|
@ -32,7 +32,7 @@ class SendOrderTickets extends Job implements ShouldQueue
|
|||
*/
|
||||
public function handle(OrderMailer $orderMailer)
|
||||
{
|
||||
//$this->dispatchNow(new GenerateTicket($this->order->order_reference));
|
||||
$this->dispatchNow(new GenerateTicket($this->order->order_reference));
|
||||
$orderMailer->sendOrderTickets($this->order);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -21,7 +21,7 @@ class OrderMailer
|
|||
|
||||
Mail::send('Emails.OrderNotification', $data, function ($message) use ($order) {
|
||||
$message->to($order->account->email);
|
||||
$message->subject('New order received on the event ' . $order->event->title . ' [' . $order->order_reference . ']');
|
||||
$message->subject(trans("Controllers.new_order_received", ["event"=> $order->event->title, "order" => $order->order_reference]));
|
||||
});
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -3,6 +3,7 @@
|
|||
namespace App\Models;
|
||||
|
||||
use Illuminate\Database\Eloquent\SoftDeletes;
|
||||
use Illuminate\Support\Str;
|
||||
|
||||
/*
|
||||
Attendize.com - Event Management & Ticketing
|
||||
|
|
@ -44,8 +45,16 @@ class Attendee extends MyBaseModel
|
|||
parent::boot();
|
||||
|
||||
static::creating(function ($order) {
|
||||
$order->private_reference_number = str_pad(random_int(0, pow(10, 9) - 1), 9, '0', STR_PAD_LEFT);
|
||||
|
||||
do {
|
||||
//generate a random string using Laravel's str_random helper
|
||||
$token = Str::Random(15);
|
||||
} //check if the token already exists and if it does, try again
|
||||
|
||||
while (Attendee::where('private_reference_number', $token)->first());
|
||||
$order->private_reference_number = $token;
|
||||
});
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
|||
|
|
@ -137,6 +137,16 @@ class Event extends MyBaseModel
|
|||
return $this->hasMany(\App\Models\Order::class);
|
||||
}
|
||||
|
||||
/**
|
||||
* The access codes associated with the event.
|
||||
*
|
||||
* @return \Illuminate\Database\Eloquent\Relations\HasMany
|
||||
*/
|
||||
public function access_codes()
|
||||
{
|
||||
return $this->hasMany(\App\Models\EventAccessCodes::class, 'event_id', 'id');
|
||||
}
|
||||
|
||||
/**
|
||||
* The account associated with the event.
|
||||
*
|
||||
|
|
@ -402,4 +412,13 @@ ICSTemplate;
|
|||
|
||||
return $icsTemplate;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param integer $accessCodeId
|
||||
* @return bool
|
||||
*/
|
||||
public function hasAccessCode($accessCodeId)
|
||||
{
|
||||
return (is_null($this->access_codes()->where('id', $accessCodeId)->first()) === false);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -0,0 +1,73 @@
|
|||
<?php
|
||||
|
||||
namespace App\Models;
|
||||
|
||||
use Illuminate\Database\Eloquent\Collection;
|
||||
use Illuminate\Database\Eloquent\Relations\BelongsTo;
|
||||
use Illuminate\Database\Eloquent\Relations\BelongsToMany;
|
||||
use Illuminate\Database\Eloquent\SoftDeletes;
|
||||
|
||||
class EventAccessCodes extends MyBaseModel
|
||||
{
|
||||
use SoftDeletes;
|
||||
|
||||
/**
|
||||
* @param integer $event_id
|
||||
* @param string $accessCode
|
||||
* @return void
|
||||
*/
|
||||
public static function logUsage($event_id, $accessCode)
|
||||
{
|
||||
(new static)::where('event_id', $event_id)
|
||||
->where('code', $accessCode)
|
||||
->increment('usage_count');
|
||||
}
|
||||
|
||||
/**
|
||||
* @param $code
|
||||
* @param $event_id
|
||||
* @return Collection
|
||||
*/
|
||||
public static function findFromCode($code, $event_id)
|
||||
{
|
||||
return (new static())
|
||||
->where('code', $code)
|
||||
->where('event_id', $event_id)
|
||||
->get();
|
||||
}
|
||||
|
||||
/**
|
||||
* The validation rules.
|
||||
*
|
||||
* @return array $rules
|
||||
*/
|
||||
public function rules()
|
||||
{
|
||||
return [
|
||||
'code' => 'required|string',
|
||||
];
|
||||
}
|
||||
|
||||
/**
|
||||
* The Event associated with the event access code.
|
||||
*
|
||||
* @return BelongsTo
|
||||
*/
|
||||
public function event()
|
||||
{
|
||||
return $this->belongsTo(Event::class, 'event_id', 'id');
|
||||
}
|
||||
|
||||
/**
|
||||
* @return BelongsToMany
|
||||
*/
|
||||
function tickets()
|
||||
{
|
||||
return $this->belongsToMany(
|
||||
Ticket::class,
|
||||
'ticket_event_access_code',
|
||||
'event_access_code_id',
|
||||
'ticket_id'
|
||||
)->withTimestamps();
|
||||
}
|
||||
}
|
||||
|
|
@ -5,6 +5,7 @@ namespace App\Models;
|
|||
use File;
|
||||
use Illuminate\Database\Eloquent\SoftDeletes;
|
||||
use PDF;
|
||||
use Illuminate\Support\Str;
|
||||
|
||||
class Order extends MyBaseModel
|
||||
{
|
||||
|
|
@ -32,6 +33,10 @@ class Order extends MyBaseModel
|
|||
'order_email.email' => 'Please enter a valid email',
|
||||
];
|
||||
|
||||
protected $casts = [
|
||||
'is_business' => 'boolean',
|
||||
];
|
||||
|
||||
/**
|
||||
* The items associated with the order.
|
||||
*
|
||||
|
|
@ -175,7 +180,14 @@ class Order extends MyBaseModel
|
|||
parent::boot();
|
||||
|
||||
static::creating(function ($order) {
|
||||
$order->order_reference = strtoupper(str_random(5)) . date('jn');
|
||||
});
|
||||
do {
|
||||
//generate a random string using Laravel's str_random helper
|
||||
$token = Str::Random(5) . date('jn');
|
||||
} //check if the token already exists and if it does, try again
|
||||
|
||||
while (Order::where('order_reference', $token)->first());
|
||||
$order->order_reference = $token;
|
||||
|
||||
});
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -72,6 +72,19 @@ class Ticket extends MyBaseModel
|
|||
return $this->belongsToMany(\App\Models\Question::class);
|
||||
}
|
||||
|
||||
/**
|
||||
* @return \Illuminate\Database\Eloquent\Relations\BelongsToMany
|
||||
*/
|
||||
function event_access_codes()
|
||||
{
|
||||
return $this->belongsToMany(
|
||||
EventAccessCodes::class,
|
||||
'ticket_event_access_code',
|
||||
'ticket_id',
|
||||
'event_access_code_id'
|
||||
)->withTimestamps();
|
||||
}
|
||||
|
||||
/**
|
||||
* TODO:implement the reserved method.
|
||||
*/
|
||||
|
|
|
|||
|
|
@ -15,6 +15,7 @@ class HelpersServiceProvider extends ServiceProvider
|
|||
{
|
||||
require app_path('Helpers/helpers.php');
|
||||
require app_path('Helpers/macros.php');
|
||||
require app_path('Helpers/strings.php');
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
|||
|
|
@ -20,25 +20,25 @@
|
|||
"illuminate/support": "~5.6",
|
||||
"intervention/image": "~2.4",
|
||||
"laracasts/utilities": "~2.1",
|
||||
"laravel/framework": "~5.6",
|
||||
"laravel/socialite": "~3.0",
|
||||
"laravelcollective/html": "~5.6",
|
||||
"league/flysystem-aws-s3-v3": "~1.0",
|
||||
"maatwebsite/excel": "~2.1",
|
||||
"maxhoffmann/parsedown-laravel": "dev-master",
|
||||
"milon/barcode": "~5.3",
|
||||
"php-http/curl-client": "^1.7",
|
||||
"php-http/message": "^1.6",
|
||||
"predis/predis": "~1.1",
|
||||
"vinelab/http": "~1.5",
|
||||
"laravel/framework": "~5.6",
|
||||
"mcamara/laravel-localization": "~1.2",
|
||||
"mews/purifier": "~2.0",
|
||||
"mews/purifier": "^2.1",
|
||||
"milon/barcode": "~5.3",
|
||||
"nitmedia/wkhtml2pdf": "dev-master",
|
||||
|
||||
"laravel/socialite": "~3.0",
|
||||
"omnipay/common": "~3",
|
||||
"omnipay/dummy": "~3",
|
||||
"omnipay/paypal": "~3",
|
||||
"omnipay/stripe": "~3",
|
||||
"php-http/curl-client": "^1.7",
|
||||
"php-http/message": "^1.6",
|
||||
"predis/predis": "~1.1",
|
||||
"vinelab/http": "~1.5",
|
||||
"laravel/tinker": "^1.0"
|
||||
"backpack/crud": "^3.5",
|
||||
"barryvdh/laravel-elfinder": "^0.4.1",
|
||||
"backpack/backupmanager": "^1.4",
|
||||
|
|
|
|||
|
|
@ -66,8 +66,11 @@ return [
|
|||
'default_datetime_format' => env('DEFAULT_DATETIME_FORMAT', 'Y-m-d H:i'),
|
||||
'default_query_cache' => 120, #Minutes
|
||||
'default_locale' => 'en',
|
||||
'default_payment_gateway' => 1, #Stripe=1 Paypal=2 BitPay=3 MIGS=4
|
||||
'default_payment_gateway' => 1, #Stripe=1 Paypal=2
|
||||
|
||||
'cdn_url_user_assets' => '',
|
||||
'cdn_url_static_assets' => ''
|
||||
'cdn_url_static_assets' => '',
|
||||
|
||||
'google_analytics_id' => env('GOOGLE_ANALYTICS_ID'),
|
||||
'google_maps_geocoding_key' => env('GOOGLE_MAPS_GEOCODING_KEY')
|
||||
];
|
||||
|
|
|
|||
|
|
@ -130,7 +130,7 @@ return [
|
|||
//'mtr' => ['name' => 'Mewari', 'script' => 'Latn', 'native' => 'Mewari', 'regional' => ''],
|
||||
//'mua' => ['name' => 'Mundang', 'script' => 'Latn', 'native' => 'Mundang', 'regional' => ''],
|
||||
//'mi' => ['name' => 'Māori', 'script' => 'Latn', 'native' => 'Māori', 'regional' => 'mi_NZ'],
|
||||
//'nl' => ['name' => 'Dutch', 'script' => 'Latn', 'native' => 'Nederlands', 'regional' => 'nl_NL'],
|
||||
'nl' => ['name' => 'Dutch', 'script' => 'Latn', 'native' => 'Nederlands', 'regional' => 'nl_NL'],
|
||||
//'nmg' => ['name' => 'Kwasio', 'script' => 'Latn', 'native' => 'ngumba', 'regional' => ''],
|
||||
//'yav' => ['name' => 'Yangben', 'script' => 'Latn', 'native' => 'nuasue', 'regional' => ''],
|
||||
//'nn' => ['name' => 'Norwegian Nynorsk', 'script' => 'Latn', 'native' => 'nynorsk', 'regional' => 'nn_NO'],
|
||||
|
|
@ -288,7 +288,7 @@ return [
|
|||
//'shi-Tfng' => ['name' => 'Tachelhit (Tifinagh)', 'script' => 'Tfng', 'native' => 'ⵜⴰⵎⴰⵣⵉⵖⵜ', 'regional' => ''],
|
||||
//'tzm' => ['name' => 'Central Atlas Tamazight (Tifinagh)','script' => 'Tfng', 'native' => 'ⵜⴰⵎⴰⵣⵉⵖⵜ', 'regional' => ''],
|
||||
//'yue' => ['name' => 'Yue', 'script' => 'Hant', 'native' => '廣州話', 'regional' => 'yue_HK'],
|
||||
//'ja' => ['name' => 'Japanese', 'script' => 'Jpan', 'native' => '日本語', 'regional' => 'ja_JP'],
|
||||
'ja' => ['name' => 'Japanese', 'script' => 'Jpan', 'native' => '日本語', 'regional' => 'ja_JP'],
|
||||
//'zh' => ['name' => 'Chinese (Simplified)', 'script' => 'Hans', 'native' => '简体中文', 'regional' => 'zh_CN'],
|
||||
//'zh-Hant' => ['name' => 'Chinese (Traditional)', 'script' => 'Hant', 'native' => '繁體中文', 'regional' => 'zh_CN'],
|
||||
//'ii' => ['name' => 'Sichuan Yi', 'script' => 'Yiii', 'native' => 'ꆈꌠꉙ', 'regional' => ''],
|
||||
|
|
|
|||
|
|
@ -0,0 +1,32 @@
|
|||
<?php
|
||||
|
||||
use Illuminate\Support\Facades\Schema;
|
||||
use Illuminate\Database\Schema\Blueprint;
|
||||
use Illuminate\Database\Migrations\Migration;
|
||||
|
||||
class AddEventImagePositionToEvents extends Migration
|
||||
{
|
||||
/**
|
||||
* Run the migrations.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function up()
|
||||
{
|
||||
Schema::table('events', function (Blueprint $table) {
|
||||
$table->string('event_image_position')->nullable();
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Reverse the migrations.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function down()
|
||||
{
|
||||
Schema::table('events', function (Blueprint $table) {
|
||||
$table->dropColumn('event_image_position');
|
||||
});
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,37 @@
|
|||
<?php
|
||||
|
||||
use Illuminate\Support\Facades\Schema;
|
||||
use Illuminate\Database\Schema\Blueprint;
|
||||
use Illuminate\Database\Migrations\Migration;
|
||||
|
||||
class CreateEventAccessCodesTable extends Migration
|
||||
{
|
||||
/**
|
||||
* Run the migrations.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function up()
|
||||
{
|
||||
Schema::create('event_access_codes', function (Blueprint $table) {
|
||||
$table->increments('id');
|
||||
$table->unsignedInteger('event_id');
|
||||
$table->string('code')->default('');
|
||||
$table->timestamps();
|
||||
$table->softDeletes();
|
||||
|
||||
// Add events table foreign key
|
||||
$table->foreign('event_id')->references('id')->on('events')->onDelete('cascade');
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Reverse the migrations.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function down()
|
||||
{
|
||||
Schema::dropIfExists('event_access_codes');
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,38 @@
|
|||
<?php
|
||||
|
||||
use Illuminate\Support\Facades\Schema;
|
||||
use Illuminate\Database\Schema\Blueprint;
|
||||
use Illuminate\Database\Migrations\Migration;
|
||||
|
||||
class CreateTicketEventAccessCodeTable extends Migration
|
||||
{
|
||||
/**
|
||||
* Run the migrations.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function up()
|
||||
{
|
||||
Schema::create('ticket_event_access_code', function (Blueprint $table) {
|
||||
$table->increments('id');
|
||||
$table->unsignedInteger('ticket_id');
|
||||
$table->unsignedInteger('event_access_code_id');
|
||||
$table->timestamps();
|
||||
|
||||
$table->foreign('ticket_id')->references('id')->on('tickets');
|
||||
$table->foreign('event_access_code_id')->references('id')->on('event_access_codes');
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Reverse the migrations.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function down()
|
||||
{
|
||||
Schema::disableForeignKeyConstraints();
|
||||
Schema::dropIfExists('ticket_event_access_code');
|
||||
Schema::enableForeignKeyConstraints();
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,32 @@
|
|||
<?php
|
||||
|
||||
use Illuminate\Support\Facades\Schema;
|
||||
use Illuminate\Database\Schema\Blueprint;
|
||||
use Illuminate\Database\Migrations\Migration;
|
||||
|
||||
class AddAmountsFieldToEventAccessCodes extends Migration
|
||||
{
|
||||
/**
|
||||
* Run the migrations.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function up()
|
||||
{
|
||||
Schema::table('event_access_codes', function (Blueprint $table) {
|
||||
$table->unsignedInteger('usage_count')->default(0)->after('code');
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Reverse the migrations.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function down()
|
||||
{
|
||||
Schema::table('event_access_codes', function (Blueprint $table) {
|
||||
$table->dropColumn('usage_count');
|
||||
});
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,34 @@
|
|||
<?php
|
||||
|
||||
use Illuminate\Support\Facades\Schema;
|
||||
use Illuminate\Database\Schema\Blueprint;
|
||||
use Illuminate\Database\Migrations\Migration;
|
||||
|
||||
class ChangePrivateReferenceNumberColumnType extends Migration
|
||||
{
|
||||
/**
|
||||
* Run the migrations.
|
||||
* Change Private Reference Number from INT to VARCHAR ColumnType
|
||||
* and increases the character count to 15
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function up()
|
||||
{
|
||||
Schema::table('attendees', function (Blueprint $table) {
|
||||
$table->string('private_reference_number', 15)->change();
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Reverse the migrations.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function down()
|
||||
{
|
||||
Schema::table('attendees', function ($table) {
|
||||
$table->integer('private_reference_number')->change();
|
||||
});
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,39 @@
|
|||
<?php
|
||||
|
||||
use Illuminate\Support\Facades\Schema;
|
||||
use Illuminate\Database\Schema\Blueprint;
|
||||
use Illuminate\Database\Migrations\Migration;
|
||||
|
||||
class AddBusinessFieldsToOrder extends Migration
|
||||
{
|
||||
/**
|
||||
* Run the migrations.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function up()
|
||||
{
|
||||
Schema::table('orders', function (Blueprint $table) {
|
||||
$table->boolean('is_business')->default(false)->after('is_payment_received');
|
||||
$table->string('business_name')->after('email')->nullable();
|
||||
$table->string('business_tax_number')->after('business_name')->nullable();
|
||||
$table->string('business_address_line_one')->after('business_tax_number')->nullable();
|
||||
$table->string('business_address_line_two')->after('business_address_line_one')->nullable();
|
||||
$table->string('business_address_state_province')->after('business_address_line_two')->nullable();
|
||||
$table->string('business_address_city')->after('business_address_state_province')->nullable();
|
||||
$table->string('business_address_code')->nullable();
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Reverse the migrations.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function down()
|
||||
{
|
||||
Schema::table('orders', function (Blueprint $table) {
|
||||
$table->dropColumn(['is_business', 'business_name', 'business_tax_number', 'business_address']);
|
||||
});
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,33 @@
|
|||
<?php
|
||||
|
||||
use Illuminate\Support\Facades\Schema;
|
||||
use Illuminate\Database\Schema\Blueprint;
|
||||
use Illuminate\Database\Migrations\Migration;
|
||||
|
||||
class AddGtmFieldToOrganiser extends Migration
|
||||
{
|
||||
/**
|
||||
* Run the migrations.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function up()
|
||||
{
|
||||
Schema::table('organisers', function (Blueprint $table) {
|
||||
$table->string('google_tag_manager_code', 20)->after('google_analytics_code')
|
||||
->nullable();
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Reverse the migrations.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function down()
|
||||
{
|
||||
Schema::table('organisers', function (Blueprint $table) {
|
||||
$table->dropColumn('google_tag_manager_code');
|
||||
});
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,32 @@
|
|||
<?php
|
||||
|
||||
use Illuminate\Support\Facades\Schema;
|
||||
use Illuminate\Database\Schema\Blueprint;
|
||||
use Illuminate\Database\Migrations\Migration;
|
||||
|
||||
class AddGtmFieldToEvent extends Migration
|
||||
{
|
||||
/**
|
||||
* Run the migrations.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function up()
|
||||
{
|
||||
Schema::table('events', function (Blueprint $table) {
|
||||
$table->string('google_tag_manager_code', 20)->after('ticket_sub_text_color')->nullable();
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Reverse the migrations.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function down()
|
||||
{
|
||||
Schema::table('events', function (Blueprint $table) {
|
||||
$table->dropColumn('google_tag_manager_code');
|
||||
});
|
||||
}
|
||||
}
|
||||
20
package.json
20
package.json
|
|
@ -4,20 +4,20 @@
|
|||
"description": "Attendize Ticketing Platform",
|
||||
"main": "public/index.php",
|
||||
"dependencies": {
|
||||
"less": "~1.7.0"
|
||||
"less": "^3.9.0"
|
||||
},
|
||||
"devDependencies": {
|
||||
"bower": "^1.8.4",
|
||||
"grunt": "^0.4.5",
|
||||
"grunt-cli": "^1.2.0",
|
||||
"grunt-contrib-concat": "^0.5.1",
|
||||
"grunt-contrib-less": "^0.12.0",
|
||||
"grunt-contrib-uglify": "^0.6.0",
|
||||
"grunt-contrib-watch": "^0.6.1",
|
||||
"gulp": "^3.8.8",
|
||||
"laravel-elixir": "*"
|
||||
"bower": "^1.8.8",
|
||||
"grunt": "^1.0.3",
|
||||
"grunt-cli": "^1.3.2",
|
||||
"grunt-contrib-concat": "^1.0.1",
|
||||
"grunt-contrib-less": "^2.0.0",
|
||||
"grunt-contrib-uglify": "^4.0.0",
|
||||
"grunt-contrib-watch": "^1.1.0",
|
||||
"laravel-elixir": "6.0.0-18"
|
||||
},
|
||||
"scripts": {
|
||||
"build-frontend": "grunt",
|
||||
"test": "echo \"Error: no test specified\" && exit 1"
|
||||
},
|
||||
"repository": {
|
||||
|
|
|
|||
|
|
@ -176,7 +176,45 @@ $(function() {
|
|||
|
||||
}).change();
|
||||
|
||||
// Apply access code here to unlock hidden tickets
|
||||
$('#apply_access_code').click(function(e) {
|
||||
var $clicked = $(this);
|
||||
// Hide any previous errors
|
||||
$clicked.closest('.form-group')
|
||||
.removeClass('has-error');
|
||||
|
||||
var url = $clicked.closest('.has-access-codes').data('url');
|
||||
var data = {
|
||||
'access_code': $('#unlock_code').val(),
|
||||
'_token': $('input:hidden[name=_token]').val()
|
||||
};
|
||||
|
||||
$.post(url, data, function(response) {
|
||||
if (response.status === 'error') {
|
||||
// Show any access code errors
|
||||
$clicked.closest('.form-group').addClass('has-error');
|
||||
showMessage(response.message);
|
||||
return;
|
||||
}
|
||||
|
||||
$clicked.closest('.has-access-codes').before(response);
|
||||
$('#unlock_code').val('');
|
||||
$clicked.closest('.has-access-codes').remove();
|
||||
});
|
||||
});
|
||||
|
||||
$('#is_business').click(function(e) {
|
||||
var $isBusiness = $(this);
|
||||
var isChecked = $isBusiness.hasClass('checked');
|
||||
|
||||
if (isChecked == undefined || isChecked === false) {
|
||||
$isBusiness.addClass('checked');
|
||||
$('#business_details').removeClass('hidden').show();
|
||||
} else {
|
||||
$isBusiness.removeClass('checked');
|
||||
$('#business_details').addClass('hidden').hide();
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
function processFormErrors($form, errors)
|
||||
|
|
|
|||
|
|
@ -228,6 +228,10 @@ $(function () {
|
|||
showMessage(data.message);
|
||||
}
|
||||
|
||||
if (typeof data.redirectUrl !== 'undefined') {
|
||||
window.location.href = data.redirectUrl;
|
||||
}
|
||||
|
||||
switch (data.status) {
|
||||
case 'success':
|
||||
$('#' + deleteType + '_' + deleteId).fadeOut();
|
||||
|
|
|
|||
|
|
@ -6694,6 +6694,7 @@ $.cf = {
|
|||
oDTP._setTimeFormatArray(); // Set TimeFormatArray
|
||||
oDTP._setDateTimeFormatArray(); // Set DateTimeFormatArray
|
||||
|
||||
console.log($(oDTP.element).data('parentelement') + " " + $(oDTP.element).attr('data-parentelement'));
|
||||
if($(oDTP.element).data('parentelement') !== undefined)
|
||||
{
|
||||
oDTP.settings.parentElement = $(oDTP.element).data('parentelement');
|
||||
|
|
@ -7911,7 +7912,8 @@ $.cf = {
|
|||
{
|
||||
$(document).on("click.DateTimePicker", function(e)
|
||||
{
|
||||
oDTP._hidePicker("");
|
||||
if (oDTP.oData.bElemFocused)
|
||||
oDTP._hidePicker("");
|
||||
});
|
||||
}
|
||||
|
||||
|
|
@ -9628,6 +9630,10 @@ $.cf = {
|
|||
showMessage(data.message);
|
||||
}
|
||||
|
||||
if (typeof data.redirectUrl !== 'undefined') {
|
||||
window.location.href = data.redirectUrl;
|
||||
}
|
||||
|
||||
switch (data.status) {
|
||||
case 'success':
|
||||
$('#' + deleteType + '_' + deleteId).fadeOut();
|
||||
|
|
|
|||
|
|
@ -107,9 +107,27 @@ var checkinApp = new Vue({
|
|||
}
|
||||
|
||||
qrcode.callback = this.QrCheckin;
|
||||
navigator.getUserMedia = navigator.getUserMedia || navigator.webkitGetUserMedia || navigator.mozGetUserMedia;
|
||||
|
||||
navigator.getUserMedia({
|
||||
// FIX SAFARI CAMERA
|
||||
if (navigator.mediaDevices === undefined) {
|
||||
navigator.mediaDevices = {};
|
||||
}
|
||||
|
||||
if (navigator.mediaDevices.getUserMedia === undefined) {
|
||||
navigator.mediaDevices.getUserMedia = function(constraints) {
|
||||
var getUserMedia = navigator.webkitGetUserMedia || navigator.mozGetUserMedia;
|
||||
|
||||
if (!getUserMedia) {
|
||||
return Promise.reject(new Error('getUserMedia is not implemented in this browser'));
|
||||
}
|
||||
|
||||
return new Promise(function(resolve, reject) {
|
||||
getUserMedia.call(navigator, constraints, resolve, reject);
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
navigator.mediaDevices.getUserMedia({
|
||||
video: {
|
||||
facingMode: 'environment'
|
||||
},
|
||||
|
|
|
|||
|
|
@ -4744,7 +4744,45 @@ function log() {
|
|||
|
||||
}).change();
|
||||
|
||||
// Apply access code here to unlock hidden tickets
|
||||
$('#apply_access_code').click(function(e) {
|
||||
var $clicked = $(this);
|
||||
// Hide any previous errors
|
||||
$clicked.closest('.form-group')
|
||||
.removeClass('has-error');
|
||||
|
||||
var url = $clicked.closest('.has-access-codes').data('url');
|
||||
var data = {
|
||||
'access_code': $('#unlock_code').val(),
|
||||
'_token': $('input:hidden[name=_token]').val()
|
||||
};
|
||||
|
||||
$.post(url, data, function(response) {
|
||||
if (response.status === 'error') {
|
||||
// Show any access code errors
|
||||
$clicked.closest('.form-group').addClass('has-error');
|
||||
showMessage(response.message);
|
||||
return;
|
||||
}
|
||||
|
||||
$clicked.closest('.has-access-codes').before(response);
|
||||
$('#unlock_code').val('');
|
||||
$clicked.closest('.has-access-codes').remove();
|
||||
});
|
||||
});
|
||||
|
||||
$('#is_business').click(function(e) {
|
||||
var $isBusiness = $(this);
|
||||
var isChecked = $isBusiness.hasClass('checked');
|
||||
|
||||
if (isChecked == undefined || isChecked === false) {
|
||||
$isBusiness.addClass('checked');
|
||||
$('#business_details').removeClass('hidden').show();
|
||||
} else {
|
||||
$isBusiness.removeClass('checked');
|
||||
$('#business_details').addClass('hidden').hide();
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
function processFormErrors($form, errors)
|
||||
|
|
|
|||
File diff suppressed because one or more lines are too long
|
|
@ -1,5 +1,3 @@
|
|||
@import url(https://fonts.googleapis.com/css?family=Source+Sans+Pro:200,300,400,600,700);
|
||||
|
||||
@import "../../vendor/bootstrap/less/bootstrap.less";
|
||||
// Copied the bootstrap vars file to allow customisation
|
||||
@import "bootstrap_custom_variables.less";
|
||||
|
|
|
|||
File diff suppressed because one or more lines are too long
Binary file not shown.
|
After Width: | Height: | Size: 67 KiB |
|
|
@ -171,4 +171,16 @@ h6 > small {
|
|||
.fsize80 { font-size: 80px; }
|
||||
.fsize96 { font-size: 96px; }
|
||||
.fsize112 { font-size: 112px; }
|
||||
.fsize128 { font-size: 128px; }
|
||||
.fsize128 { font-size: 128px; }
|
||||
|
||||
/* Alignments
|
||||
-------------------------------*/
|
||||
.has-text-left {
|
||||
text-align: left;
|
||||
}
|
||||
.has-text-center {
|
||||
text-align: center;
|
||||
}
|
||||
.has-text-right {
|
||||
text-align: right;
|
||||
}
|
||||
|
|
@ -1,12 +1,9 @@
|
|||
@import url(https://fonts.googleapis.com/css?family=Open+Sans:100,400,300);
|
||||
@import url(https://fonts.googleapis.com/css?family=Roboto:300,100);
|
||||
|
||||
html, body {
|
||||
height: 100%;
|
||||
}
|
||||
|
||||
body {
|
||||
font-family: 'Open Sans', sans-serif;
|
||||
font-family: sans-serif;
|
||||
}
|
||||
|
||||
table {
|
||||
|
|
|
|||
|
|
@ -1,6 +1,8 @@
|
|||
{
|
||||
"name": "datetimepicker",
|
||||
|
||||
"description": "Responsive flat design jQuery DateTime Picker plugin for Web & Mobile",
|
||||
|
||||
"keywords": [
|
||||
"date",
|
||||
"time",
|
||||
|
|
@ -12,37 +14,30 @@
|
|||
"timepicker",
|
||||
"input"
|
||||
],
|
||||
|
||||
"version": "0.1.38",
|
||||
|
||||
"homepage": "https://nehakadam.github.io/DateTimePicker/",
|
||||
"main": [
|
||||
"dist/DateTimePicker.min.js",
|
||||
"dist/DateTimePicker.min.css"
|
||||
],
|
||||
|
||||
"main": ["dist/DateTimePicker.min.js", "dist/DateTimePicker.min.css"],
|
||||
|
||||
"authors": [
|
||||
{
|
||||
"name": "nehakadam"
|
||||
}
|
||||
{"name": "nehakadam"}
|
||||
],
|
||||
|
||||
"repository": {
|
||||
"type": "git",
|
||||
"url": "git://github.com:nehakadam/DateTimePicker.git"
|
||||
},
|
||||
|
||||
"devDependencies": {
|
||||
"jquery": ">=1.0.0"
|
||||
},
|
||||
|
||||
"ignore": [
|
||||
"**/.*",
|
||||
"node_modules",
|
||||
"package.json"
|
||||
],
|
||||
"_release": "0.1.38",
|
||||
"_resolution": {
|
||||
"type": "version",
|
||||
"tag": "0.1.38",
|
||||
"commit": "36d272ac90c93ef45c5b8b228a517a932a0778bd"
|
||||
},
|
||||
"_source": "https://github.com/nehakadam/DateTimePicker.git",
|
||||
"_target": "^0.1.38",
|
||||
"_originalSource": "flat-datetimepicker",
|
||||
"_direct": true
|
||||
}
|
||||
]
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -3,7 +3,7 @@ module.exports = function(grunt)
|
|||
var sBanner = '/* ----------------------------------------------------------------------------- ' +
|
||||
'\n\n jQuery DateTimePicker - Responsive flat design jQuery DateTime Picker plugin for Web & Mobile' +
|
||||
'\n Version <%= pkg.version %>' +
|
||||
'\n Copyright (c)<%= grunt.template.today("yyyy") %> Lajpat Shah' +
|
||||
'\n Copyright (c)2014-<%= grunt.template.today("yyyy") %> Lajpat Shah' +
|
||||
'\n Contributors : https://github.com/nehakadam/DateTimePicker/contributors' +
|
||||
'\n Repository : https://github.com/nehakadam/DateTimePicker' +
|
||||
'\n Documentation : https://nehakadam.github.io/DateTimePicker' +
|
||||
|
|
@ -23,12 +23,12 @@ module.exports = function(grunt)
|
|||
options:
|
||||
{
|
||||
separator: '\n\n\n\n',
|
||||
stripBanners: true,
|
||||
stripBanners: true,
|
||||
banner: sBanner
|
||||
},
|
||||
|
||||
src: ['src/i18n/*', '!src/i18n/DateTimePicker-i18n.js'],
|
||||
dest: 'src/i18n/DateTimePicker-i18n.js',
|
||||
src: ['src/i18n/*', '!src/i18n/DateTimePicker-i18n.js'],
|
||||
dest: 'src/i18n/DateTimePicker-i18n.js',
|
||||
nonull: true
|
||||
}
|
||||
},
|
||||
|
|
@ -59,8 +59,8 @@ module.exports = function(grunt)
|
|||
{
|
||||
banner: sBanner,
|
||||
compress: {
|
||||
drop_console: true
|
||||
}
|
||||
drop_console: true
|
||||
}
|
||||
},
|
||||
build:
|
||||
{
|
||||
|
|
@ -98,12 +98,10 @@ module.exports = function(grunt)
|
|||
options:
|
||||
{
|
||||
strict: false,
|
||||
|
||||
curly: false,
|
||||
|
||||
eqeqeq: true,
|
||||
eqnull: true,
|
||||
browser: true,
|
||||
eqeqeq: true,
|
||||
eqnull: true,
|
||||
browser: true,
|
||||
devel: true,
|
||||
//unused: true,
|
||||
//undef: true,
|
||||
|
|
@ -111,14 +109,14 @@ module.exports = function(grunt)
|
|||
globals:
|
||||
{
|
||||
$: false,
|
||||
jQuery: false,
|
||||
define: false,
|
||||
require: false,
|
||||
module: false,
|
||||
DateTimePicker: true
|
||||
},
|
||||
jQuery: false,
|
||||
define: false,
|
||||
require: false,
|
||||
module: false,
|
||||
DateTimePicker: true
|
||||
},
|
||||
|
||||
force: true
|
||||
force: true
|
||||
}
|
||||
},
|
||||
|
||||
|
|
@ -147,8 +145,9 @@ module.exports = function(grunt)
|
|||
grunt.loadNpmTasks('grunt-contrib-jshint');
|
||||
grunt.loadNpmTasks('grunt-contrib-csslint');
|
||||
|
||||
// Default task(s).
|
||||
grunt.registerTask('default', ['uglify', 'cssmin', 'copy']);
|
||||
grunt.registerTask('lang', ['concat:lang', 'copy:lang']);
|
||||
grunt.registerTask('lint', ['jshint', 'csslint']);
|
||||
// Default task(s).
|
||||
//
|
||||
grunt.registerTask('default', ['uglify', 'cssmin', 'copy']);
|
||||
grunt.registerTask('lang', ['concat:lang', 'copy:lang']);
|
||||
grunt.registerTask('lint', ['jshint', 'csslint']);
|
||||
};
|
||||
|
|
@ -1,6 +1,6 @@
|
|||
The MIT License (MIT)
|
||||
|
||||
Copyright (c) 2017 Lajpat Shah
|
||||
Copyright (c) 2014-2019 Lajpat Shah
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy of
|
||||
this software and associated documentation files (the "Software"), to deal in
|
||||
|
|
|
|||
|
|
@ -11,7 +11,7 @@ Users can change values using +/- buttons or type values directly into the textb
|
|||
For web, picker can be binded relative to reference element, were it will appear at the bottom of the element. For mobile, the picker can appear as a dialog box covering entire window.
|
||||
|
||||
|
||||
##Browser Support
|
||||
## Browser Support
|
||||
- Chrome, Firefox, Safari, Opera, IE 6+
|
||||
- Android 2.3+, iOS 6+, Windows Phone 8
|
||||
|
||||
|
|
@ -20,7 +20,7 @@ For web, picker can be binded relative to reference element, were it will appear
|
|||
For demo & api documentation visit [Plugin Page](http://nehakadam.github.io/DateTimePicker/)
|
||||
|
||||
|
||||
##Build System
|
||||
## Build System
|
||||
|
||||
- Install devDependencies listed in "package.json"
|
||||
|
||||
|
|
@ -36,7 +36,7 @@ Tasks configured in "Gruntfile.js"
|
|||
- Minify "src/DateTimePicker.css" to "dist/DateTimePicker.min.css"
|
||||
|
||||
|
||||
##Installations
|
||||
## Installations
|
||||
|
||||
- npm
|
||||
|
||||
|
|
@ -44,35 +44,39 @@ Tasks configured in "Gruntfile.js"
|
|||
|
||||
- bower
|
||||
|
||||
`bower install curioussolutions-datetimepicker`
|
||||
`bower install flat-datetimepicker`
|
||||
|
||||
##CDN
|
||||
## CDN
|
||||
DateTimePicker is hosted on [jsDelivr](http://www.jsdelivr.com).
|
||||
|
||||
Files - Latest
|
||||
|
||||
```
|
||||
<link rel="stylesheet" type="text/css" href="//cdn.jsdelivr.net/datetimepicker/latest/DateTimePicker.min.css" />
|
||||
<script type="text/javascript" src="//cdn.jsdelivr.net/datetimepicker/latest/DateTimePicker.min.js"></script>
|
||||
<link rel="stylesheet" type="text/css" href="//cdn.jsdelivr.net/npm/datetimepicker@latest/dist/DateTimePicker.min.css" />
|
||||
<script type="text/javascript" src="//cdn.jsdelivr.net/npm/datetimepicker@latest/dist/DateTimePicker.min.js"></script>
|
||||
```
|
||||
|
||||
Files - Particular Version
|
||||
|
||||
```
|
||||
<link rel="stylesheet" type="text/css" href="//cdn.jsdelivr.net/datetimepicker/<version>/DateTimePicker.min.css" />
|
||||
<script type="text/javascript" src="//cdn.jsdelivr.net/datetimepicker/<version>/DateTimePicker.min.js"></script>
|
||||
<link rel="stylesheet" type="text/css" href="//cdn.jsdelivr.net/npm/datetimepicker@<version>/dist/DateTimePicker.min.css" />
|
||||
<script type="text/javascript" src="//cdn.jsdelivr.net/npm/datetimepicker@<version>/dist/DateTimePicker.min.js"></script>
|
||||
```
|
||||
|
||||
##Authors
|
||||
## Authors
|
||||
[Neha Kadam](https://github.com/nehakadam): Developer
|
||||
|
||||
Special Thanks:
|
||||
- [Jean-Christophe Hoelt](https://github.com/j3k0) - NPM packaging. Few customization options.
|
||||
- [All Contributors](https://github.com/nehakadam/DateTimePicker/contributors)
|
||||
|
||||
Copyright 2017 [Lajpat Shah](https://github.com/lajpatshah)
|
||||
|
||||
Copyright 2014-2019 [Lajpat Shah](https://github.com/lajpatshah)
|
||||
|
||||
|
||||
##License
|
||||
**I can not actively maintain or reply quickly due to time constraints, please consider this point before using plugin.**
|
||||
|
||||
|
||||
## License
|
||||
|
||||
Licensed under the MIT License
|
||||
|
|
|
|||
|
|
@ -2,7 +2,7 @@
|
|||
|
||||
jQuery DateTimePicker - Responsive flat design jQuery DateTime Picker plugin for Web & Mobile
|
||||
Version 0.1.17
|
||||
Copyright (c)2017 Lajpat Shah
|
||||
Copyright (c)2014-2019 Lajpat Shah
|
||||
Contributors : https://github.com/nehakadam/DateTimePicker/contributors
|
||||
Repository : https://nehakadam.github.io/DateTimePicker
|
||||
Documentation : https://github.com/nehakadam/DateTimePicker
|
||||
|
|
|
|||
|
|
@ -2,7 +2,7 @@
|
|||
|
||||
jQuery DateTimePicker - Responsive flat design jQuery DateTime Picker plugin for Web & Mobile
|
||||
Version 0.1.38
|
||||
Copyright (c)2017 Lajpat Shah
|
||||
Copyright (c)2014-2019 Lajpat Shah
|
||||
Contributors : https://github.com/nehakadam/DateTimePicker/contributors
|
||||
Repository : https://github.com/nehakadam/DateTimePicker
|
||||
Documentation : https://nehakadam.github.io/DateTimePicker
|
||||
|
|
|
|||
|
|
@ -2,7 +2,7 @@
|
|||
|
||||
jQuery DateTimePicker - Responsive flat design jQuery DateTime Picker plugin for Web & Mobile
|
||||
Version 0.1.38
|
||||
Copyright (c)2017 Lajpat Shah
|
||||
Copyright (c)2014-2019 Lajpat Shah
|
||||
Contributors : https://github.com/nehakadam/DateTimePicker/contributors
|
||||
Repository : https://github.com/nehakadam/DateTimePicker
|
||||
Documentation : https://nehakadam.github.io/DateTimePicker
|
||||
|
|
|
|||
|
|
@ -1,13 +1 @@
|
|||
/* -----------------------------------------------------------------------------
|
||||
|
||||
jQuery DateTimePicker - Responsive flat design jQuery DateTime Picker plugin for Web & Mobile
|
||||
Version 0.1.38
|
||||
Copyright (c)2017 Lajpat Shah
|
||||
Contributors : https://github.com/nehakadam/DateTimePicker/contributors
|
||||
Repository : https://github.com/nehakadam/DateTimePicker
|
||||
Documentation : https://nehakadam.github.io/DateTimePicker
|
||||
|
||||
----------------------------------------------------------------------------- */
|
||||
|
||||
|
||||
.dtpicker-cont{top:25%}.dtpicker-overlay{-ms-filter:"progid:DXImageTransform.Microsoft.gradient(startColorstr=#20000000, endColorstr=#20000000)";filter:progid:DXImageTransform.Microsoft.gradient(startColorstr=#20000000, endColorstr=#20000000);zoom:1!important}
|
||||
.dtpicker-cont{top:25%}.dtpicker-overlay{zoom:1!important}
|
||||
|
|
@ -2,11 +2,12 @@
|
|||
|
||||
jQuery DateTimePicker - Responsive flat design jQuery DateTime Picker plugin for Web & Mobile
|
||||
Version 0.1.38
|
||||
Copyright (c)2017 Lajpat Shah
|
||||
Copyright (c)2014-2019 Lajpat Shah
|
||||
Contributors : https://github.com/nehakadam/DateTimePicker/contributors
|
||||
Repository : https://github.com/nehakadam/DateTimePicker
|
||||
Documentation : https://nehakadam.github.io/DateTimePicker
|
||||
|
||||
----------------------------------------------------------------------------- */
|
||||
|
||||
Array.prototype.indexOf||(Array.prototype.indexOf=function(a){var b=this.length,c=Number(arguments[1])||0;for(c=c<0?Math.ceil(c):Math.floor(c),c<0&&(c+=b);c<b;c++)if(c in this&&this[c]===a)return c;return-1}),jQuery.fn.fadeIn=function(){this.show()},jQuery.fn.fadeOut=function(){this.hide()};
|
||||
|
||||
Array.prototype.indexOf||(Array.prototype.indexOf=function(t){var r=this.length,n=Number(arguments[1])||0;for((n=n<0?Math.ceil(n):Math.floor(n))<0&&(n+=r);n<r;n++)if(n in this&&this[n]===t)return n;return-1}),jQuery.fn.fadeIn=function(){this.show()},jQuery.fn.fadeOut=function(){this.hide()};
|
||||
|
|
@ -2,7 +2,7 @@
|
|||
|
||||
jQuery DateTimePicker - Responsive flat design jQuery DateTime Picker plugin for Web & Mobile
|
||||
Version 0.1.38
|
||||
Copyright (c)2017 Lajpat Shah
|
||||
Copyright (c)2014-2019 Lajpat Shah
|
||||
Contributors : https://github.com/nehakadam/DateTimePicker/contributors
|
||||
Repository : https://github.com/nehakadam/DateTimePicker
|
||||
Documentation : https://nehakadam.github.io/DateTimePicker
|
||||
|
|
|
|||
|
|
@ -2,7 +2,7 @@
|
|||
|
||||
jQuery DateTimePicker - Responsive flat design jQuery DateTime Picker plugin for Web & Mobile
|
||||
Version 0.1.38
|
||||
Copyright (c)2017 Lajpat Shah
|
||||
Copyright (c)2014-2019 Lajpat Shah
|
||||
Contributors : https://github.com/nehakadam/DateTimePicker/contributors
|
||||
Repository : https://github.com/nehakadam/DateTimePicker
|
||||
Documentation : https://nehakadam.github.io/DateTimePicker
|
||||
|
|
@ -300,6 +300,7 @@ $.cf = {
|
|||
oDTP._setTimeFormatArray(); // Set TimeFormatArray
|
||||
oDTP._setDateTimeFormatArray(); // Set DateTimeFormatArray
|
||||
|
||||
console.log($(oDTP.element).data('parentelement') + " " + $(oDTP.element).attr('data-parentelement'));
|
||||
if($(oDTP.element).data('parentelement') !== undefined)
|
||||
{
|
||||
oDTP.settings.parentElement = $(oDTP.element).data('parentelement');
|
||||
|
|
@ -1517,7 +1518,8 @@ $.cf = {
|
|||
{
|
||||
$(document).on("click.DateTimePicker", function(e)
|
||||
{
|
||||
oDTP._hidePicker("");
|
||||
if (oDTP.oData.bElemFocused)
|
||||
oDTP._hidePicker("");
|
||||
});
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -1,13 +1 @@
|
|||
/* -----------------------------------------------------------------------------
|
||||
|
||||
jQuery DateTimePicker - Responsive flat design jQuery DateTime Picker plugin for Web & Mobile
|
||||
Version 0.1.38
|
||||
Copyright (c)2017 Lajpat Shah
|
||||
Contributors : https://github.com/nehakadam/DateTimePicker/contributors
|
||||
Repository : https://github.com/nehakadam/DateTimePicker
|
||||
Documentation : https://nehakadam.github.io/DateTimePicker
|
||||
|
||||
----------------------------------------------------------------------------- */
|
||||
|
||||
|
||||
.dtpicker-overlay{z-index:2000;display:none;min-width:300px;background:rgba(0,0,0,.2);font-size:12px;-webkit-touch-callout:none;-webkit-user-select:none;-khtml-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.dtpicker-mobile{position:fixed;top:0;left:0;width:100%;height:100%}.dtpicker-overlay *{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;-ms-box-sizing:border-box;-webkit-tap-highlight-color:rgba(0,0,0,0)}.dtpicker-bg{width:100%;height:100%;font-family:Arial}.dtpicker-cont{border:1px solid #ECF0F1}.dtpicker-mobile .dtpicker-cont{position:relative;top:50%;-webkit-transform:translateY(-50%);-moz-transform:translateY(-50%);-o-transform:translateY(-50%);-ms-transform:translateY(-50%);transform:translateY(-50%);border:0}.dtpicker-content{margin:0 auto;padding:1em 0;max-width:500px;background:#fff}.dtpicker-mobile .dtpicker-content{width:97%}.dtpicker-subcontent{position:relative}.dtpicker-header{margin:.2em 1em}.dtpicker-header .dtpicker-title{color:#2980B9;text-align:center;font-size:1.1em}.dtpicker-header .dtpicker-close{position:absolute;top:-.7em;right:.3em;padding:.5em .5em 1em 1em;color:#FF3B30;font-size:1.5em;cursor:pointer}.dtpicker-header .dtpicker-close:hover{color:#FF3B30}.dtpicker-header .dtpicker-value{padding:.8em .2em .2em;color:#FF3B30;text-align:center;font-size:1.4em}.dtpicker-components{overflow:hidden;margin:1em;font-size:1.3em}.dtpicker-components *{margin:0;padding:0}.dtpicker-components .dtpicker-compOutline{display:inline-block;float:left}.dtpicker-comp2{width:50%}.dtpicker-comp3{width:33.3%}.dtpicker-comp4{width:25%}.dtpicker-comp5{width:20%}.dtpicker-comp6{width:16.66%}.dtpicker-comp7{width:14.285%}.dtpicker-components .dtpicker-comp{margin:2%;text-align:center}.dtpicker-components .dtpicker-comp>*{display:block;height:30px;color:#2980B9;text-align:center;line-height:30px}.dtpicker-components .dtpicker-comp>:hover{color:#2980B9}.dtpicker-components .dtpicker-compButtonEnable{opacity:1}.dtpicker-components .dtpicker-compButtonDisable{opacity:.5}.dtpicker-components .dtpicker-compButton{background:#FFF;font-size:140%;cursor:pointer}.dtpicker-components .dtpicker-compValue{margin:.4em 0;width:100%;border:0;background:#FFF;font-size:100%;-webkit-appearance:none;-moz-appearance:none}.dtpicker-overlay .dtpicker-compValue:focus{outline:0;background:#F2FCFF}.dtpicker-buttonCont{overflow:hidden;margin:.2em 1em}.dtpicker-buttonCont .dtpicker-button{display:block;padding:.6em 0;width:47%;background:#FF3B30;color:#FFF;text-align:center;font-size:1.3em;cursor:pointer}.dtpicker-buttonCont .dtpicker-button:hover{color:#FFF}.dtpicker-singleButton .dtpicker-button{margin:.2em auto}.dtpicker-twoButtons .dtpicker-buttonSet{float:left}.dtpicker-twoButtons .dtpicker-buttonClear{float:right}
|
||||
.dtpicker-overlay{z-index:2000;display:none;min-width:300px;background:rgba(0,0,0,.2);font-size:12px;-webkit-touch-callout:none;-webkit-user-select:none;-khtml-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.dtpicker-mobile{position:fixed;top:0;left:0;width:100%;height:100%}.dtpicker-overlay *{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;-ms-box-sizing:border-box;-webkit-tap-highlight-color:transparent}.dtpicker-bg{width:100%;height:100%;font-family:Arial}.dtpicker-cont{border:1px solid #ecf0f1}.dtpicker-mobile .dtpicker-cont{position:relative;top:50%;-webkit-transform:translateY(-50%);-moz-transform:translateY(-50%);-o-transform:translateY(-50%);-ms-transform:translateY(-50%);transform:translateY(-50%);border:none}.dtpicker-content{margin:0 auto;padding:1em 0;max-width:500px;background:#fff}.dtpicker-mobile .dtpicker-content{width:97%}.dtpicker-subcontent{position:relative}.dtpicker-header{margin:.2em 1em}.dtpicker-header .dtpicker-title{color:#2980b9;text-align:center;font-size:1.1em}.dtpicker-header .dtpicker-close{position:absolute;top:-.7em;right:.3em;padding:.5em .5em 1em 1em;color:#ff3b30;font-size:1.5em;cursor:pointer}.dtpicker-header .dtpicker-close:hover{color:#ff3b30}.dtpicker-header .dtpicker-value{padding:.8em .2em .2em .2em;color:#ff3b30;text-align:center;font-size:1.4em}.dtpicker-components{overflow:hidden;margin:1em 1em;font-size:1.3em}.dtpicker-components *{margin:0;padding:0}.dtpicker-components .dtpicker-compOutline{display:inline-block;float:left}.dtpicker-comp2{width:50%}.dtpicker-comp3{width:33.3%}.dtpicker-comp4{width:25%}.dtpicker-comp5{width:20%}.dtpicker-comp6{width:16.66%}.dtpicker-comp7{width:14.285%}.dtpicker-components .dtpicker-comp{margin:2%;text-align:center}.dtpicker-components .dtpicker-comp>*{display:block;height:30px;color:#2980b9;text-align:center;line-height:30px}.dtpicker-components .dtpicker-comp>:hover{color:#2980b9}.dtpicker-components .dtpicker-compButtonEnable{opacity:1}.dtpicker-components .dtpicker-compButtonDisable{opacity:.5}.dtpicker-components .dtpicker-compButton{background:#fff;font-size:140%;cursor:pointer}.dtpicker-components .dtpicker-compValue{margin:.4em 0;width:100%;border:none;background:#fff;font-size:100%;-webkit-appearance:none;-moz-appearance:none}.dtpicker-overlay .dtpicker-compValue:focus{outline:0;background:#f2fcff}.dtpicker-buttonCont{overflow:hidden;margin:.2em 1em}.dtpicker-buttonCont .dtpicker-button{display:block;padding:.6em 0;width:47%;background:#ff3b30;color:#fff;text-align:center;font-size:1.3em;cursor:pointer}.dtpicker-buttonCont .dtpicker-button:hover{color:#fff}.dtpicker-singleButton .dtpicker-button{margin:.2em auto}.dtpicker-twoButtons .dtpicker-buttonSet{float:left}.dtpicker-twoButtons .dtpicker-buttonClear{float:right}
|
||||
File diff suppressed because one or more lines are too long
|
|
@ -2,7 +2,7 @@
|
|||
|
||||
jQuery DateTimePicker - Responsive flat design jQuery DateTime Picker plugin for Web & Mobile
|
||||
Version 0.1.38
|
||||
Copyright (c)2017 Lajpat Shah
|
||||
Copyright (c)2014-2019 Lajpat Shah
|
||||
Contributors : https://github.com/nehakadam/DateTimePicker/contributors
|
||||
Repository : https://github.com/nehakadam/DateTimePicker
|
||||
Documentation : https://nehakadam.github.io/DateTimePicker
|
||||
|
|
|
|||
|
|
@ -2,7 +2,7 @@
|
|||
|
||||
jQuery DateTimePicker - Responsive flat design jQuery DateTime Picker plugin for Web & Mobile
|
||||
Version 0.1.38
|
||||
Copyright (c)2017 Lajpat Shah
|
||||
Copyright (c)2014-2019 Lajpat Shah
|
||||
Contributors : https://github.com/nehakadam/DateTimePicker/contributors
|
||||
Repository : https://github.com/nehakadam/DateTimePicker
|
||||
Documentation : https://nehakadam.github.io/DateTimePicker
|
||||
|
|
|
|||
|
|
@ -2,7 +2,7 @@
|
|||
|
||||
jQuery DateTimePicker - Responsive flat design jQuery DateTime Picker plugin for Web & Mobile
|
||||
Version 0.1.38
|
||||
Copyright (c)2017 Lajpat Shah
|
||||
Copyright (c)2014-2019 Lajpat Shah
|
||||
Contributors : https://github.com/nehakadam/DateTimePicker/contributors
|
||||
Repository : https://github.com/nehakadam/DateTimePicker
|
||||
Documentation : https://nehakadam.github.io/DateTimePicker
|
||||
|
|
|
|||
|
|
@ -2,7 +2,7 @@
|
|||
|
||||
jQuery DateTimePicker - Responsive flat design jQuery DateTime Picker plugin for Web & Mobile
|
||||
Version 0.1.38
|
||||
Copyright (c)2017 Lajpat Shah
|
||||
Copyright (c)2014-2019 Lajpat Shah
|
||||
Contributors : https://github.com/nehakadam/DateTimePicker/contributors
|
||||
Repository : https://github.com/nehakadam/DateTimePicker
|
||||
Documentation : https://nehakadam.github.io/DateTimePicker
|
||||
|
|
|
|||
|
|
@ -2,7 +2,7 @@
|
|||
|
||||
jQuery DateTimePicker - Responsive flat design jQuery DateTime Picker plugin for Web & Mobile
|
||||
Version 0.1.38
|
||||
Copyright (c)2017 Lajpat Shah
|
||||
Copyright (c)2014-2019 Lajpat Shah
|
||||
Contributors : https://github.com/nehakadam/DateTimePicker/contributors
|
||||
Repository : https://github.com/nehakadam/DateTimePicker
|
||||
Documentation : https://nehakadam.github.io/DateTimePicker
|
||||
|
|
|
|||
|
|
@ -2,7 +2,7 @@
|
|||
|
||||
jQuery DateTimePicker - Responsive flat design jQuery DateTime Picker plugin for Web & Mobile
|
||||
Version 0.1.38
|
||||
Copyright (c)2017 Lajpat Shah
|
||||
Copyright (c)2014-2019 Lajpat Shah
|
||||
Contributors : https://github.com/nehakadam/DateTimePicker/contributors
|
||||
Repository : https://github.com/nehakadam/DateTimePicker
|
||||
Documentation : https://nehakadam.github.io/DateTimePicker
|
||||
|
|
|
|||
|
|
@ -2,7 +2,7 @@
|
|||
|
||||
jQuery DateTimePicker - Responsive flat design jQuery DateTime Picker plugin for Web & Mobile
|
||||
Version 0.1.38
|
||||
Copyright (c)2017 Lajpat Shah
|
||||
Copyright (c)2014-2019 Lajpat Shah
|
||||
Contributors : https://github.com/nehakadam/DateTimePicker/contributors
|
||||
Repository : https://github.com/nehakadam/DateTimePicker
|
||||
Documentation : https://nehakadam.github.io/DateTimePicker
|
||||
|
|
|
|||
|
|
@ -2,7 +2,7 @@
|
|||
|
||||
jQuery DateTimePicker - Responsive flat design jQuery DateTime Picker plugin for Web & Mobile
|
||||
Version 0.1.38
|
||||
Copyright (c)2017 Lajpat Shah
|
||||
Copyright (c)2014-2019 Lajpat Shah
|
||||
Contributors : https://github.com/nehakadam/DateTimePicker/contributors
|
||||
Repository : https://github.com/nehakadam/DateTimePicker
|
||||
Documentation : https://nehakadam.github.io/DateTimePicker
|
||||
|
|
|
|||
|
|
@ -0,0 +1,49 @@
|
|||
/* -----------------------------------------------------------------------------
|
||||
|
||||
jQuery DateTimePicker - Responsive flat design jQuery DateTime Picker plugin for Web & Mobile
|
||||
Version 0.1.38
|
||||
Copyright (c)2014-2019 Lajpat Shah
|
||||
Contributors : https://github.com/nehakadam/DateTimePicker/contributors
|
||||
Repository : https://github.com/nehakadam/DateTimePicker
|
||||
Documentation : https://nehakadam.github.io/DateTimePicker
|
||||
|
||||
----------------------------------------------------------------------------- */
|
||||
|
||||
/*
|
||||
|
||||
language: Korean
|
||||
file: DateTimePicker-i18n-ko
|
||||
|
||||
*/
|
||||
|
||||
(function ($) {
|
||||
$.DateTimePicker.i18n["ko"] = $.extend($.DateTimePicker.i18n["ko"], {
|
||||
|
||||
language: "ko",
|
||||
labels: {
|
||||
'year': '년',
|
||||
'month': '월',
|
||||
'day': '일',
|
||||
'hour': '시',
|
||||
'minutes': '분',
|
||||
'seconds': '초',
|
||||
'meridiem': '정오'
|
||||
},
|
||||
dateTimeFormat: "yyyy-MM-dd HH:mm",
|
||||
dateFormat: "yyyy-MM-dd",
|
||||
timeFormat: "HH:mm",
|
||||
|
||||
shortDayNames: ["일", "월", "화", "수", "목", "금", "토"],
|
||||
fullDayNames: ["일요일", "월요일", "화요일", "수요일", "목요일", "금요일", "토요일"],
|
||||
shortMonthNames: ["1월", "2월", "3월", "4월", "5월", "6월", "7월", "8월", "9월", "10월", "11월", "12월"],
|
||||
fullMonthNames: ["1월", "2월", "3월", "4월", "5월", "6월", "7월", "8월", "9월", "10월", "11월", "12월"],
|
||||
|
||||
titleContentDate: "날짜 설정",
|
||||
titleContentTime: "시간 설정",
|
||||
titleContentDateTime: "날짜 및 시간 설정 ",
|
||||
|
||||
setButtonContent: "설정하기",
|
||||
clearButtonContent: "초기화"
|
||||
|
||||
});
|
||||
})(jQuery);
|
||||
|
|
@ -2,7 +2,7 @@
|
|||
|
||||
jQuery DateTimePicker - Responsive flat design jQuery DateTime Picker plugin for Web & Mobile
|
||||
Version 0.1.38
|
||||
Copyright (c)2017 Lajpat Shah
|
||||
Copyright (c)2014-2019 Lajpat Shah
|
||||
Contributors : https://github.com/nehakadam/DateTimePicker/contributors
|
||||
Repository : https://github.com/nehakadam/DateTimePicker
|
||||
Documentation : https://nehakadam.github.io/DateTimePicker
|
||||
|
|
|
|||
|
|
@ -2,7 +2,7 @@
|
|||
|
||||
jQuery DateTimePicker - Responsive flat design jQuery DateTime Picker plugin for Web & Mobile
|
||||
Version 0.1.38
|
||||
Copyright (c)2017 Lajpat Shah
|
||||
Copyright (c)2014-2019 Lajpat Shah
|
||||
Contributors : https://github.com/nehakadam/DateTimePicker/contributors
|
||||
Repository : https://github.com/nehakadam/DateTimePicker
|
||||
Documentation : https://nehakadam.github.io/DateTimePicker
|
||||
|
|
|
|||
|
|
@ -2,7 +2,7 @@
|
|||
|
||||
jQuery DateTimePicker - Responsive flat design jQuery DateTime Picker plugin for Web & Mobile
|
||||
Version 0.1.38
|
||||
Copyright (c)2017 Lajpat Shah
|
||||
Copyright (c)2014-2019 Lajpat Shah
|
||||
Contributors : https://github.com/nehakadam/DateTimePicker/contributors
|
||||
Repository : https://github.com/nehakadam/DateTimePicker
|
||||
Documentation : https://nehakadam.github.io/DateTimePicker
|
||||
|
|
|
|||
|
|
@ -2,7 +2,7 @@
|
|||
|
||||
jQuery DateTimePicker - Responsive flat design jQuery DateTime Picker plugin for Web & Mobile
|
||||
Version 0.1.38
|
||||
Copyright (c)2017 Lajpat Shah
|
||||
Copyright (c)2014-2019 Lajpat Shah
|
||||
Contributors : https://github.com/nehakadam/DateTimePicker/contributors
|
||||
Repository : https://github.com/nehakadam/DateTimePicker
|
||||
Documentation : https://nehakadam.github.io/DateTimePicker
|
||||
|
|
|
|||
|
|
@ -2,7 +2,7 @@
|
|||
|
||||
jQuery DateTimePicker - Responsive flat design jQuery DateTime Picker plugin for Web & Mobile
|
||||
Version 0.1.38
|
||||
Copyright (c)2017 Lajpat Shah
|
||||
Copyright (c)2014-2019 Lajpat Shah
|
||||
Contributors : https://github.com/nehakadam/DateTimePicker/contributors
|
||||
Repository : https://github.com/nehakadam/DateTimePicker
|
||||
Documentation : https://nehakadam.github.io/DateTimePicker
|
||||
|
|
|
|||
|
|
@ -2,7 +2,7 @@
|
|||
|
||||
jQuery DateTimePicker - Responsive flat design jQuery DateTime Picker plugin for Web & Mobile
|
||||
Version 0.1.38
|
||||
Copyright (c)2017 Lajpat Shah
|
||||
Copyright (c)2014-2019 Lajpat Shah
|
||||
Contributors : https://github.com/nehakadam/DateTimePicker/contributors
|
||||
Repository : https://github.com/nehakadam/DateTimePicker
|
||||
Documentation : https://nehakadam.github.io/DateTimePicker
|
||||
|
|
|
|||
|
|
@ -2,7 +2,7 @@
|
|||
|
||||
jQuery DateTimePicker - Responsive flat design jQuery DateTime Picker plugin for Web & Mobile
|
||||
Version 0.1.38
|
||||
Copyright (c)2017 Lajpat Shah
|
||||
Copyright (c)2014-2019 Lajpat Shah
|
||||
Contributors : https://github.com/nehakadam/DateTimePicker/contributors
|
||||
Repository : https://github.com/nehakadam/DateTimePicker
|
||||
Documentation : https://nehakadam.github.io/DateTimePicker
|
||||
|
|
|
|||
|
|
@ -2,7 +2,7 @@
|
|||
|
||||
jQuery DateTimePicker - Responsive flat design jQuery DateTime Picker plugin for Web & Mobile
|
||||
Version 0.1.38
|
||||
Copyright (c)2017 Lajpat Shah
|
||||
Copyright (c)2014-2019 Lajpat Shah
|
||||
Contributors : https://github.com/nehakadam/DateTimePicker/contributors
|
||||
Repository : https://github.com/nehakadam/DateTimePicker
|
||||
Documentation : https://nehakadam.github.io/DateTimePicker
|
||||
|
|
|
|||
|
|
@ -2,7 +2,7 @@
|
|||
|
||||
jQuery DateTimePicker - Responsive flat design jQuery DateTime Picker plugin for Web & Mobile
|
||||
Version 0.1.17
|
||||
Copyright (c)2017 Lajpat Shah
|
||||
Copyright (c)2014-2019 Lajpat Shah
|
||||
Contributors : https://github.com/nehakadam/DateTimePicker/contributors
|
||||
Repository : https://nehakadam.github.io/DateTimePicker
|
||||
Documentation : https://github.com/nehakadam/DateTimePicker
|
||||
|
|
|
|||
|
|
@ -2,7 +2,7 @@
|
|||
|
||||
jQuery DateTimePicker - Responsive flat design jQuery DateTime Picker plugin for Web & Mobile
|
||||
Version 0.1.38
|
||||
Copyright (c)2017 Lajpat Shah
|
||||
Copyright (c)2014-2019 Lajpat Shah
|
||||
Contributors : https://github.com/nehakadam/DateTimePicker/contributors
|
||||
Repository : https://github.com/nehakadam/DateTimePicker
|
||||
Documentation : https://nehakadam.github.io/DateTimePicker
|
||||
|
|
|
|||
|
|
@ -2,7 +2,7 @@
|
|||
|
||||
jQuery DateTimePicker - Responsive flat design jQuery DateTime Picker plugin for Web & Mobile
|
||||
Version 0.1.38
|
||||
Copyright (c)2017 Lajpat Shah
|
||||
Copyright (c)2014-2019 Lajpat Shah
|
||||
Contributors : https://github.com/nehakadam/DateTimePicker/contributors
|
||||
Repository : https://github.com/nehakadam/DateTimePicker
|
||||
Documentation : https://nehakadam.github.io/DateTimePicker
|
||||
|
|
|
|||
|
|
@ -2,7 +2,7 @@
|
|||
|
||||
jQuery DateTimePicker - Responsive flat design jQuery DateTime Picker plugin for Web & Mobile
|
||||
Version 0.1.38
|
||||
Copyright (c)2017 Lajpat Shah
|
||||
Copyright (c)2014-2019 Lajpat Shah
|
||||
Contributors : https://github.com/nehakadam/DateTimePicker/contributors
|
||||
Repository : https://github.com/nehakadam/DateTimePicker
|
||||
Documentation : https://nehakadam.github.io/DateTimePicker
|
||||
|
|
|
|||
|
|
@ -2,7 +2,7 @@
|
|||
|
||||
jQuery DateTimePicker - Responsive flat design jQuery DateTime Picker plugin for Web & Mobile
|
||||
Version 0.1.38
|
||||
Copyright (c)2017 Lajpat Shah
|
||||
Copyright (c)2014-2019 Lajpat Shah
|
||||
Contributors : https://github.com/nehakadam/DateTimePicker/contributors
|
||||
Repository : https://github.com/nehakadam/DateTimePicker
|
||||
Documentation : https://nehakadam.github.io/DateTimePicker
|
||||
|
|
@ -300,6 +300,7 @@ $.cf = {
|
|||
oDTP._setTimeFormatArray(); // Set TimeFormatArray
|
||||
oDTP._setDateTimeFormatArray(); // Set DateTimeFormatArray
|
||||
|
||||
console.log($(oDTP.element).data('parentelement') + " " + $(oDTP.element).attr('data-parentelement'));
|
||||
if($(oDTP.element).data('parentelement') !== undefined)
|
||||
{
|
||||
oDTP.settings.parentElement = $(oDTP.element).data('parentelement');
|
||||
|
|
@ -1517,7 +1518,8 @@ $.cf = {
|
|||
{
|
||||
$(document).on("click.DateTimePicker", function(e)
|
||||
{
|
||||
oDTP._hidePicker("");
|
||||
if (oDTP.oData.bElemFocused)
|
||||
oDTP._hidePicker("");
|
||||
});
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -2,7 +2,7 @@
|
|||
|
||||
jQuery DateTimePicker - Responsive flat design jQuery DateTime Picker plugin for Web & Mobile
|
||||
Version 0.1.38
|
||||
Copyright (c)2017 Lajpat Shah
|
||||
Copyright (c)2014-2019 Lajpat Shah
|
||||
Contributors : https://github.com/nehakadam/DateTimePicker/contributors
|
||||
Repository : https://github.com/nehakadam/DateTimePicker
|
||||
Documentation : https://nehakadam.github.io/DateTimePicker
|
||||
|
|
|
|||
|
|
@ -2,7 +2,7 @@
|
|||
|
||||
jQuery DateTimePicker - Responsive flat design jQuery DateTime Picker plugin for Web & Mobile
|
||||
Version 0.1.38
|
||||
Copyright (c)2017 Lajpat Shah
|
||||
Copyright (c)2014-2019 Lajpat Shah
|
||||
Contributors : https://github.com/nehakadam/DateTimePicker/contributors
|
||||
Repository : https://github.com/nehakadam/DateTimePicker
|
||||
Documentation : https://nehakadam.github.io/DateTimePicker
|
||||
|
|
|
|||
|
|
@ -2,7 +2,7 @@
|
|||
|
||||
jQuery DateTimePicker - Responsive flat design jQuery DateTime Picker plugin for Web & Mobile
|
||||
Version 0.1.38
|
||||
Copyright (c)2017 Lajpat Shah
|
||||
Copyright (c)2014-2019 Lajpat Shah
|
||||
Contributors : https://github.com/nehakadam/DateTimePicker/contributors
|
||||
Repository : https://github.com/nehakadam/DateTimePicker
|
||||
Documentation : https://nehakadam.github.io/DateTimePicker
|
||||
|
|
|
|||
|
|
@ -2,7 +2,7 @@
|
|||
|
||||
jQuery DateTimePicker - Responsive flat design jQuery DateTime Picker plugin for Web & Mobile
|
||||
Version 0.1.38
|
||||
Copyright (c)2017 Lajpat Shah
|
||||
Copyright (c)2014-2019 Lajpat Shah
|
||||
Contributors : https://github.com/nehakadam/DateTimePicker/contributors
|
||||
Repository : https://github.com/nehakadam/DateTimePicker
|
||||
Documentation : https://nehakadam.github.io/DateTimePicker
|
||||
|
|
|
|||
|
|
@ -2,7 +2,7 @@
|
|||
|
||||
jQuery DateTimePicker - Responsive flat design jQuery DateTime Picker plugin for Web & Mobile
|
||||
Version 0.1.38
|
||||
Copyright (c)2017 Lajpat Shah
|
||||
Copyright (c)2014-2019 Lajpat Shah
|
||||
Contributors : https://github.com/nehakadam/DateTimePicker/contributors
|
||||
Repository : https://github.com/nehakadam/DateTimePicker
|
||||
Documentation : https://nehakadam.github.io/DateTimePicker
|
||||
|
|
|
|||
|
|
@ -2,7 +2,7 @@
|
|||
|
||||
jQuery DateTimePicker - Responsive flat design jQuery DateTime Picker plugin for Web & Mobile
|
||||
Version 0.1.38
|
||||
Copyright (c)2017 Lajpat Shah
|
||||
Copyright (c)2014-2019 Lajpat Shah
|
||||
Contributors : https://github.com/nehakadam/DateTimePicker/contributors
|
||||
Repository : https://github.com/nehakadam/DateTimePicker
|
||||
Documentation : https://nehakadam.github.io/DateTimePicker
|
||||
|
|
|
|||
|
|
@ -2,7 +2,7 @@
|
|||
|
||||
jQuery DateTimePicker - Responsive flat design jQuery DateTime Picker plugin for Web & Mobile
|
||||
Version 0.1.38
|
||||
Copyright (c)2017 Lajpat Shah
|
||||
Copyright (c)2014-2019 Lajpat Shah
|
||||
Contributors : https://github.com/nehakadam/DateTimePicker/contributors
|
||||
Repository : https://github.com/nehakadam/DateTimePicker
|
||||
Documentation : https://nehakadam.github.io/DateTimePicker
|
||||
|
|
|
|||
|
|
@ -2,7 +2,7 @@
|
|||
|
||||
jQuery DateTimePicker - Responsive flat design jQuery DateTime Picker plugin for Web & Mobile
|
||||
Version 0.1.38
|
||||
Copyright (c)2017 Lajpat Shah
|
||||
Copyright (c)2014-2019 Lajpat Shah
|
||||
Contributors : https://github.com/nehakadam/DateTimePicker/contributors
|
||||
Repository : https://github.com/nehakadam/DateTimePicker
|
||||
Documentation : https://nehakadam.github.io/DateTimePicker
|
||||
|
|
|
|||
|
|
@ -0,0 +1,49 @@
|
|||
/* -----------------------------------------------------------------------------
|
||||
|
||||
jQuery DateTimePicker - Responsive flat design jQuery DateTime Picker plugin for Web & Mobile
|
||||
Version 0.1.38
|
||||
Copyright (c)2014-2019 Lajpat Shah
|
||||
Contributors : https://github.com/nehakadam/DateTimePicker/contributors
|
||||
Repository : https://github.com/nehakadam/DateTimePicker
|
||||
Documentation : https://nehakadam.github.io/DateTimePicker
|
||||
|
||||
----------------------------------------------------------------------------- */
|
||||
|
||||
/*
|
||||
|
||||
language: Korean
|
||||
file: DateTimePicker-i18n-ko
|
||||
|
||||
*/
|
||||
|
||||
(function ($) {
|
||||
$.DateTimePicker.i18n["ko"] = $.extend($.DateTimePicker.i18n["ko"], {
|
||||
|
||||
language: "ko",
|
||||
labels: {
|
||||
'year': '년',
|
||||
'month': '월',
|
||||
'day': '일',
|
||||
'hour': '시',
|
||||
'minutes': '분',
|
||||
'seconds': '초',
|
||||
'meridiem': '정오'
|
||||
},
|
||||
dateTimeFormat: "yyyy-MM-dd HH:mm",
|
||||
dateFormat: "yyyy-MM-dd",
|
||||
timeFormat: "HH:mm",
|
||||
|
||||
shortDayNames: ["일", "월", "화", "수", "목", "금", "토"],
|
||||
fullDayNames: ["일요일", "월요일", "화요일", "수요일", "목요일", "금요일", "토요일"],
|
||||
shortMonthNames: ["1월", "2월", "3월", "4월", "5월", "6월", "7월", "8월", "9월", "10월", "11월", "12월"],
|
||||
fullMonthNames: ["1월", "2월", "3월", "4월", "5월", "6월", "7월", "8월", "9월", "10월", "11월", "12월"],
|
||||
|
||||
titleContentDate: "날짜 설정",
|
||||
titleContentTime: "시간 설정",
|
||||
titleContentDateTime: "날짜 및 시간 설정 ",
|
||||
|
||||
setButtonContent: "설정하기",
|
||||
clearButtonContent: "초기화"
|
||||
|
||||
});
|
||||
})(jQuery);
|
||||
|
|
@ -2,7 +2,7 @@
|
|||
|
||||
jQuery DateTimePicker - Responsive flat design jQuery DateTime Picker plugin for Web & Mobile
|
||||
Version 0.1.38
|
||||
Copyright (c)2017 Lajpat Shah
|
||||
Copyright (c)2014-2019 Lajpat Shah
|
||||
Contributors : https://github.com/nehakadam/DateTimePicker/contributors
|
||||
Repository : https://github.com/nehakadam/DateTimePicker
|
||||
Documentation : https://nehakadam.github.io/DateTimePicker
|
||||
|
|
|
|||
|
|
@ -2,7 +2,7 @@
|
|||
|
||||
jQuery DateTimePicker - Responsive flat design jQuery DateTime Picker plugin for Web & Mobile
|
||||
Version 0.1.38
|
||||
Copyright (c)2017 Lajpat Shah
|
||||
Copyright (c)2014-2019 Lajpat Shah
|
||||
Contributors : https://github.com/nehakadam/DateTimePicker/contributors
|
||||
Repository : https://github.com/nehakadam/DateTimePicker
|
||||
Documentation : https://nehakadam.github.io/DateTimePicker
|
||||
|
|
|
|||
|
|
@ -2,7 +2,7 @@
|
|||
|
||||
jQuery DateTimePicker - Responsive flat design jQuery DateTime Picker plugin for Web & Mobile
|
||||
Version 0.1.38
|
||||
Copyright (c)2017 Lajpat Shah
|
||||
Copyright (c)2014-2019 Lajpat Shah
|
||||
Contributors : https://github.com/nehakadam/DateTimePicker/contributors
|
||||
Repository : https://github.com/nehakadam/DateTimePicker
|
||||
Documentation : https://nehakadam.github.io/DateTimePicker
|
||||
|
|
|
|||
|
|
@ -2,7 +2,7 @@
|
|||
|
||||
jQuery DateTimePicker - Responsive flat design jQuery DateTime Picker plugin for Web & Mobile
|
||||
Version 0.1.38
|
||||
Copyright (c)2017 Lajpat Shah
|
||||
Copyright (c)2014-2019 Lajpat Shah
|
||||
Contributors : https://github.com/nehakadam/DateTimePicker/contributors
|
||||
Repository : https://github.com/nehakadam/DateTimePicker
|
||||
Documentation : https://nehakadam.github.io/DateTimePicker
|
||||
|
|
|
|||
|
|
@ -2,7 +2,7 @@
|
|||
|
||||
jQuery DateTimePicker - Responsive flat design jQuery DateTime Picker plugin for Web & Mobile
|
||||
Version 0.1.38
|
||||
Copyright (c)2017 Lajpat Shah
|
||||
Copyright (c)2014-2019 Lajpat Shah
|
||||
Contributors : https://github.com/nehakadam/DateTimePicker/contributors
|
||||
Repository : https://github.com/nehakadam/DateTimePicker
|
||||
Documentation : https://nehakadam.github.io/DateTimePicker
|
||||
|
|
|
|||
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue