Categories
AngularJS JavaScript

jQuery File Upload Plugin

Wow…!! File Uploader with well documentation and many unexpected features with multiple file selection, drag and drop support, progress bars, validation and preview images, audio and video for jQuery. Supports cross-domain, chunked and resumable file uploads and client-side image resizing.

Server Side Platform Support

  • PHP
  • Python
  • Ruby on Rails
  • Java
  • Node.js and Go

Available Features

  • Multiple file upload:
    Allows to select multiple files at once and upload them simultaneously.
  • Drag & Drop support:
    Allows to upload files by dragging them from your desktop or file manager and dropping them on your browser window.
  • Upload progress bar:
    Shows a progress bar indicating the upload progress for individual files and for all uploads combined.
  • Cancelable uploads:
    Individual file uploads can be canceled to stop the upload progress.
  • Resumable uploads:
    Aborted uploads can be resumed with browsers supporting the Blob API.
  • Chunked uploads:
    Large files can be uploaded in smaller chunks with browsers supporting the Blob API.
  • Client-side image resizing:
    Images can be automatically resized on client-side with browsers supporting the required JS APIs.
  • Preview images, audio and video:
    A preview of image, audio and video files can be displayed before uploading with browsers supporting the required APIs.
  • No browser plugins (e.g. Adobe Flash) required:
    The implementation is based on open standards like HTML5 and JavaScript and requires no additional browser plugins.
  • Graceful fallback for legacy browsers:
    Uploads files via XMLHttpRequests if supported and uses iframes as fallback for legacy browsers.
  • HTML file upload form fallback:
    Allows progressive enhancement by using a standard HTML file upload form as widget element.
  • Cross-site file uploads:
    Supports uploading files to a different domain with cross-site XMLHttpRequests or iframe redirects.
  • Multiple plugin instances:
    Allows to use multiple plugin instances on the same webpage.
  • Customizable and extensible:
    Provides an API to set individual options and define callback methods for various upload events.
  • Multipart and file contents stream uploads:
    Files can be uploaded as standard “multipart/form-data” or file contents stream (HTTP PUT file upload).
  • Compatible with any server-side application platform:
    Works with any server-side platform (PHP, Python, Ruby on Rails, Java, Node.js, Go etc.) that supports standard HTML form file uploads.

Desktop Browser Support

  • Google Chrome
  • Apple Safari 4.0+
  • Mozilla Firefox 3.0+
  • Opera 11.0+
  • Microsoft Internet Explorer 6.0+

MObile Browser Support

  • Apple Safari Mobile on iOS 6.0+
  • Google Chrome on Android 4.0+
  • Opera Mobile 12.0+

File Upload DemoGihubURL

Categories
AngularJS General JavaScript

RowReorder extension for DataTables

DataTables has an extensive API’s which can be used to access the data contained in a table and manipulate the table after the table initialisation has completed. The DataTables API is designed to reflect the structure of the data in the table and how you will typically interact with the table through the API. It can also be extended by the extensions and plug-ins providing additional features and operations.

The API can be accessed through the following methods:

  • $( selector ).DataTable();
  • $( selector ).dataTable().api();
  • new $.fn.dataTable.Api( selector );

The result from each, is an instance of the DataTables API object which has the tables found by the selector in its context. It is important to note the difference between $( selector ).DataTable() and $( selector ).dataTable(). The former returns a DataTables API instance, while the latter returns a jQuery object.

For general information of DataTables listed API which operates Data Tables tables are listed below.

  • DataTable Tables
  • RowRecorder
  • Scroller
  • DataTable Rows
  • DataTable Columns
  • Col Recorder
  • Fixed Columns
  • Fixed Header
  • Editor
  • Row Group 

In this post shown the example of RowReorder extension for DataTables being used with Editor. RowReorder provides the ability for end users to quickly and easily reorder items in the table by click and drag. The integration with Editor that it provides (rowReorder.editor) makes use of Editor’s multi-row editing abilities to update all rows to take account of the row ordered data.

This can make really for easy to use interface for end users, where they have data that they can place into a custom order.

Initialisation

RowReorder can be initialised on a DataTable by using the rowReorder option in the DataTables options object. This is simply a boolean true to indicate that rows should be reorderable, although it is also possible to use an object for fine grained control (see the reference documentation for full details):

$('#myTable').DataTable( {rowReorder: true} );

Features

RowReorders presents the following features:

  • Row reordering for DataTables with click and touch support
  • Full integration with Editor
  • Customisable drag start handle
  • Drag snapping
  • Full integration with Bootstrap, Foundation and the other styling libraries supported by DataTables

Further documentation is available at https://datatables.net/extensions/rowreorder/

Categories
General

NG-ZORRO-MOBILE – A Mobile UI Components

Today we are take a short look at NG-ZORRO-MOBILE, it is an enterprise-class UI design for Angular mobile web app. You can use this UI in any kind of product because it is scalable & easily adaptable. It Provides the “Components are loaded on demand” / “Web page HD display” / “SVG Icon” optimisation features and integrated development. It also support to running in ionic.

Environment Support:

iOS 7.0+
Android 4.4+

Angular Support:

Angular 6.0.0^.

Installation:

NG-ZORRO-MOBILE recommended to use @angular/cli to install.

$ npm install -g @angular/cli

Create Project using following command:

$ ng new PROJECT-NAME

Initialize Configuration:

$ ng add ng-zorro-antd-mobile

Development and Debugging:

$ ng serve --port 0 --open

Build and Deploy:

$ ng build --prod

Add Modules and Styles to your angular app:

import { NgZorroAntdMobileModule } from 'ng-zorro-antd-mobile';
...
...
...
@NgModule({
  declarations: [AppComponent],
  imports: [
    BrowserModule,
    ...
    ...
    ...
    NgZorroAntdMobileModule
  ],
  bootstrap: [AppComponent]
})
export class AppModule {}

and add styles to your angular.json file

{
  ...
  ...
  "styles": [
    "node_modules/ng-zorro-antd-mobile/src/ng-zorro-antd-mobile.min.css",
    "src/styles.css"
  ],
}

Done! now you can use ng-zorro-mobile for your angular mobile app. You also used in ionic. For using in ionic please check following link.

used in ionic:  http://ng.mobile.ant.design/#/docs/running-in-ionic/zh

Some other links are following:

NG-ZORRO-MOBILE : http://ng.mobile.ant.design

Categories
General Laravel

Laravel : Helpful Gems, Shortcuts Syntax and Many More

In our regular development life we are trying to do more better and efficient code. But the thing is that many developers don’t know the proper shortcuts & efficient helpers and many more things which helps to make more better coding. I listed here some shortcut of syntax which are helpful for you.

Common Syntax Vs Shorter Syntax

Some of Laravel Eloquent hidden gems

  • Conditional DB Query

Sometimes we need conditional query but when the both result (or none ) returns true, then we generally do separate eloquent calls as like  

Another better way to repeat eloquent call

  • Use where() on a with() by using whereHas()

If you want to need of constraints on models’s relationship then return those result whose relationship match that constraint,  hahahahah… It’s much better solution

->whereHas() checks that 

  • The relationship exists
  • Allows you to pass a closure that you can use to add constraints to the query being called
  • Using the shorter where method for date column

The below method is most important, it’s a recommendation to use those filter for date column intend of where clauses or looping through the returned collection to breakdown the date and grab only ones from a particular month.

  • Only return models if they have a particular relationship using has().

The below example says required ->has(‘specification’) means return those eloquent model whose records exist in DB. 

  • Use of (skip / take) instead of offset and limit

To limit the number of results returned from the query or to skip a given number of results in the query. It is easy to read & sort as like skip(10) users and take(5) 

Categories
General

MySQL 8.0 and comparison with MySQL 5.7

What Is New in MySQL 8.0

Feature Mysql 5.7 Mysql 8.0
Data Dictionary Stored in metadata files and non-transactional tables Transactional data dictionary that stores information about database objects.
Atomic Data Definition Statements (Atomic DDL) ————- Dictionary updates, storage engine operations, and binary log writes associated with a DDL operation into a single, atomic transaction combined by an atomic DDL statement.
Security and Account management 1. MyISAM (nontransactional) grant tables 1. InnoDB (transactional) grant tables.
2. Account-management statements (such as CREATE USER or DROP USER) for naming multiple users could succeed for some users and fail for others. 2. Each statement is transactional and either succeeds for all named users or rolls back and no effect if any error occurs.
3. mysql_native_password plugin. 3.caching_sha2_password authentication plugin is available. Like the sha256_password plugin.
4. Not supported. 4. MySQL now supports roles, which are named collections of privileges.
5. Single password for each account. 5. Accounts are now permitted to have dual passwords.
Resource management Not supported 1. Creation and management of resource groups.

2. Threads can be assigned to particular groups running within the server so that threads execute according to the resources available to the group.

Character Set support Default character set :  latin1 Default character set :  utf8mb4
Data Type support Use of expressions as default values for the BLOB, TEXT, GEOMETRY, and JSON data types.
Indexes Visibility Supports only visible indexes. Now supports invisible indexes.

And many more features and enhancements.

Categories
Angular AngularJS General JavaScript

Flowjs – Angular HTML5 Uploader

Flow.js is javascript library which is provides multiple simultaneous, stable and resumable uploads via the HTML5 File API. This library allows automatic resume uploading file when internet connection is lost
either locally or to the server. Additionally its provide a facility to pause, resume and recover uploads without losing any data because flow.js upload file in chunks so only currently chuck is aborted not entire upload.

Flow.js does not depends on third party library, its use HTML 5 API. Flow.js have a ability to break / chunks file in smaller pieces, that’s why currently flow.js support is limited to Firefox 4+, Chrome 11+, Safari 6+ and Internet Explorer 10+.

  1. Flow.js is currently available for angular.js (ng-flow)
  2. JQuery and node.js backend (link). 

How to install?

Download latest build from

http:// https://github.com/flowjs/flow.js/releases

or bower :

http://bower install flow.js#~2

or use git clone http://git clone https://github.com/flowjs/flow.js

How to use Flow.js?

var flow = new Flow({
  target:'/api/photo/redeem-upload-token', 
  query:{upload_token:'my_token'}
});
// Flow.js isn't supported, fall back on a different method
if(!flow.support) location.href = '/some-old-crappy-uploader';

User can either selected and drag-dropped, just assign drop target and a DOM item to be clicked for browsing:

flow.assignBrowse(document.getElementById('browseButton'));
flow.assignDrop(document.getElementById('dropTarget'));

After this, interaction with Flow.js is done by listening to events:

flow.on('fileAdded', function(file, event){
    console.log(file, event);
});
flow.on('fileSuccess', function(file,message){
    console.log(file,message);
});
flow.on('fileError', function(file, message){
    console.log(file, message);
});

Read full documentation on below link:

Flow.js : https://flowjs.github.io/ng-flow/

Categories
Laravel Uncategorized

Laravel Certification

   It’s a great opportunity… 

Stand out. Get Certified

Yaaaa, You can become globally recognized certified developer or the certified team for your expertise in creating modern web applications with Laravel. The Board of Advisors provides good knowledge & high-quality exams. For more information related links are here.

Certified Developer


Stand out in a stack of resumes. Differentiate yourself from your peers by proving your in-depth Laravel knowledge.

Certified Team


Your company has the best Laravel experts. Do your customers know it? Certify your team and gain your customer’s trust.

 

Related Links – 

Laravel Certification

laravel-news

Categories
Angular Laravel PHP

Instamojo Payment Gateway

 Instamojo is a free Payment Gateway for 5,00,000+ Businesses in India. There is no setup or annual fee for this payment gateway. Just pay a transaction fee of 2% + ₹3 for the transactions. Instamojo accepts Debit Cards, Credit Cards, Net Banking, UPI, Wallets, EMI, NEFT and IMPS.

Instamojo.com is a digital payments platform bundled with tons of e-commerce features to enable any business or individual to sell, manage & grow effortlessly, securely and cost-effectively.

It was not easy to make it work in India because most of the payments are handled through credit card and PayPal and very few Indians use them. Then after RBI regulations even using PayPal within India was impossible.

Follow the given steps for easy Integration in Laravel,

Instamojo PHP API

Assists you to programmatically create, edit and delete Links on Instamojo in PHP.

Installing via Composer –

$ php composer.phar require instamojo/instamojo-php

Note: If you’re not using Composer then directly include the contents of src directory in your project.

And visit this link for its usage.

Further documentation is available at https://docs.instamojo.com/v1.1/docs


Categories
General

What is Laravel-websockets?

Laravel WebSockets is a php package for Laravel 5.7 and up, which handles the server-side of WebSockets for you. It has a web-server, implemented in PHP, that handles incoming WebSocket connections. Laravel WebSockets has been built on top of Ratchet. Also there is support for multi-tenancy, which let you set up a webSockets server and use it for many different applications.

Laravel WebSockets also has a real-time dashboard, that shows you all incoming connections, events and disconnects the moment they happen on your WebSocket server, powered by a real-time chart that gives you key-insights into your WebSocket application metrics, like the number of peak connections, the amount of messages sent and the amount of API messages received.

This package also supports existing packages and applications out there that support Pusher and all the features offered by Pusher, such as private channelspresence channels and even the Pusher HTTP API.

Usage:

1. First, require it with Composer

composer require beyondcode/laravel-websockets

2. Publish the migration file

php artisan vendor:publish–provider=”BeyondCode\LaravelWebSockets\WebSocketsServiceProvider”–tag=”migrations”

3. Run Migrations command

php artisan migrate

4.  publish the config file

php artisan vendor:publish –provider=”BeyondCode\LaravelWebSockets\WebSocketsServiceProvider”–tag=”config”

5. The last step is to fill some environment variables. Make sure that APP_NAMEPUSHER_APP_IDPUSHER_APP_KEYPUSHER_APP_SECRET are filled in your .env

6. start the server by executing this command.

php artisan websockets:serve

Now you can use a library like laravel-echo to connect to the server. To get started with the client side check out docsthe laravel-echo docs and this demo application.

Categories
Angular AngularJS ES6 General JavaScript TypeScript

Dragula – A simple drag and drop library

In this article, we will take quick look at the process of creating drag and drop in AngularJs and Angular application using Dragula. For AngularJs and Angular there are two different Dragula library are available, i added link of all those libraries at the end of this article. Dragula gives you simple way to add advance drag and drop in your application.

Dragula includes a services, directives, events and options for easily
implementation in you application. You can easily drag and drop from one container to another also you can sort a list of order and many more are available in Dragula.

Installation : 

AngularJs : 

You can get it on npm.

npm install angularjs-dragula --save

Or bower, too.

bower install angularjs-dragula --save


Angular: 

npm install ng2-dragula# 
or
yarn add ng2-dragula

For more info please visit following links.

AngularJs: 

https://github.com/bevacqua/angularjs-dragulah

https://bevacqua.github.io/angularjs-dragula/

Angular: 

https://github.com/valor-software/ng2-dragula

https://valor-software.com/ng2-dragula/