Merge branch 'master' of https://bitbucket.org/venbainformationtechnology/apollodec
@ -120,6 +120,7 @@ defined('BRANCH') OR define('BRANCH','T_BranchMaster');
|
||||
defined('STAFF') OR define('STAFF','T_StaffDetails');
|
||||
defined('STAFF_BRANCH') OR define('STAFF_BRANCH','T_Staff_BranchAccess');
|
||||
defined('UNIVERSITY') OR define('UNIVERSITY','T_UniversityMaster');
|
||||
defined('UNIVERSITYFILE') OR define('UNIVERSITYFILE','T_University_File_List');
|
||||
defined('COURSE') OR define('COURSE','T_CourseMaster');
|
||||
defined('COURSE_FEES') OR define('COURSE_FEES','T_Course_Fees_Details');
|
||||
defined('LEAD_DETAILS') OR define('LEAD_DETAILS','T_Lead_Details');
|
||||
|
||||
@ -157,6 +157,8 @@ $route['getDashboardCallTrack'] = 'Call_Tracking_Controller/getDashboardCallTrac
|
||||
$route['getTotalStudent'] = 'Dashboard_Controller/getTotalStudent';
|
||||
$route['getTotalEmployee'] = 'Dashboard_Controller/getTotalEmployee';
|
||||
$route['getTotalUsers'] = 'Dashboard_Controller/getTotalUsers';
|
||||
$route['getUniversityRegisteredStudent'] = 'Dashboard_Controller/getUniversityRegisteredStudent';
|
||||
$route['getDashboradStudentPendingFees'] = 'Dashboard_Controller/getDashboradStudentPendingFees';
|
||||
|
||||
/*login page announcement*/
|
||||
$route['getLoginAnnouncementDetails'] = 'Login_Controller/getLoginAnnouncementDetails';
|
||||
@ -319,4 +321,5 @@ $route['report_wav_ref'] = 'Report/wav_ref';
|
||||
$route['report_examfee'] = 'Report/examfee';
|
||||
$route['report_balfee'] = 'Report/balfee';
|
||||
$route['report_lead'] = 'Report/lead';
|
||||
$route['insertUniversityfile'] = 'UniversityFile_Controller/insertUniversityfile';
|
||||
|
||||
|
||||
@ -89,4 +89,25 @@ class Dashboard_Controller extends REST_Controller {
|
||||
], REST_Controller::HTTP_NOT_FOUND); // NOT_FOUND (404) being the HTTP response code
|
||||
}
|
||||
}
|
||||
/*
|
||||
* get university based student registration details for dash board
|
||||
* created by kms
|
||||
* */
|
||||
public function getUniversityRegisteredStudent_post(){
|
||||
$data = $this->post('data');
|
||||
$getRegisteredDetails = $this->dashboard_model->get_univ_registered_student($data);
|
||||
if ($getRegisteredDetails) {
|
||||
$getRegisteredDetails['status'] = REST_Controller::HTTP_OK;
|
||||
// Set the response and exit
|
||||
$this->response($getRegisteredDetails, REST_Controller::HTTP_OK); // OK (200) being the HTTP response code
|
||||
}
|
||||
else
|
||||
{
|
||||
// Set the response and exit
|
||||
$this->response([
|
||||
'message' => 'No users were found',
|
||||
'status' => REST_Controller::HTTP_NOT_FOUND
|
||||
], REST_Controller::HTTP_NOT_FOUND); // NOT_FOUND (404) being the HTTP response code
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
350
Apollo/api/application/controllers/UniversityFile_Controller.php
Normal file
@ -0,0 +1,350 @@
|
||||
<?php
|
||||
|
||||
defined('BASEPATH') OR exit('No direct script access allowed');
|
||||
|
||||
// This can be removed if you use __autoload() in config.php OR use Modular Extensions
|
||||
/** @noinspection PhpIncludeInspection */
|
||||
require_once APPPATH . '/libraries/REST_Controller.php';
|
||||
|
||||
/**
|
||||
* This is an example of a few basic user interaction methods you could use
|
||||
* all done with a hardcoded array
|
||||
*
|
||||
* @package CodeIgniter
|
||||
* @subpackage Rest Server
|
||||
* @category Controller
|
||||
* @author
|
||||
* @license MIT
|
||||
* @link
|
||||
*/
|
||||
class UniversityFile_Controller extends REST_Controller {
|
||||
|
||||
/*
|
||||
* get university details
|
||||
* params:
|
||||
* created by kdk
|
||||
* */
|
||||
function __construct()
|
||||
{
|
||||
// Construct the parent class
|
||||
parent::__construct();
|
||||
$this->methods['getUniversity_post']['limit'] = 100;
|
||||
$this->methods['chkUnivIdExistDetail_post']['limit'] = 100;
|
||||
$this->methods['getDefaultActivityDetails_post']['limit'] = 100;
|
||||
$this->methods['updateDefaultActivityDetails_post']['limit'] = 100;
|
||||
|
||||
// load the university model
|
||||
$this->load->model('Universityfile_model', 'universityfile_model');
|
||||
}
|
||||
|
||||
// get university details
|
||||
public function getUniversity_post() {
|
||||
$reqData = $this->post('data');
|
||||
$loginUserId = $reqData['localUserID'];
|
||||
$loginUserBranchId = $reqData['localBranchID'];
|
||||
$loginUserType = $reqData['localType'];
|
||||
$getUniversityListDetails = $this->universityfile_model->get_university_list($loginUserBranchId);// Check if the employee exist
|
||||
if ($getUniversityListDetails)
|
||||
{
|
||||
$getUniversityListDetails['status'] = REST_Controller::HTTP_OK;
|
||||
// Set the response and exit
|
||||
$this->response($getUniversityListDetails, REST_Controller::HTTP_OK); // OK (200) being the HTTP response code
|
||||
}
|
||||
else
|
||||
{
|
||||
// Set the response and exit
|
||||
$this->response([
|
||||
'message' => 'No list were found',
|
||||
'status' => REST_Controller::HTTP_NOT_FOUND
|
||||
], REST_Controller::HTTP_NOT_FOUND); // NOT_FOUND (404) being the HTTP response code
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
//update university details
|
||||
public function updateUniversityDetail_post() {
|
||||
|
||||
|
||||
//s print_r($_FILES);
|
||||
$imagename='';
|
||||
$size='';
|
||||
$imageSource='';
|
||||
|
||||
if(!empty($_FILES))
|
||||
{
|
||||
$imagename = $_FILES['idProof']['name'];
|
||||
$size = $_FILES['idProof']['size'];
|
||||
$imageSource = $_FILES['idProof']['tmp_name'];
|
||||
}
|
||||
|
||||
|
||||
// echo $imagename;
|
||||
// echo $size;
|
||||
// echo $imageSource;
|
||||
// die();
|
||||
|
||||
|
||||
$reqData = $this->post('data');
|
||||
$data = json_decode($reqData, true);
|
||||
$req['UpdatedBy'] = $this->post('updatedBy');
|
||||
$date = date('Y-m-d H:i:s');
|
||||
$req['UpdatedOn'] = $date;
|
||||
$req['UniversityName']= $data['UniversityName'];
|
||||
$req['UniversityShortName']= $data['UniversityShortName'];
|
||||
$req['MobileNumber']= $data['MobileNumber'];
|
||||
$req['EmailID']= $data['EmailID'];
|
||||
$req['Address']= $data['Address'];
|
||||
$req['IsActive']= $data['IsActive'];
|
||||
$req['BranchCode'] = $this->post('branchCode');
|
||||
$req['ID']= $data['ID'];
|
||||
|
||||
$updateFor = $data['UniversityID'];
|
||||
|
||||
|
||||
$updateUniversityDetail = $this->university_model->update_university_details($updateFor, $req,$imagename,$imageSource,$size);// Check if the employee exist
|
||||
if ($updateUniversityDetail)
|
||||
{
|
||||
$updateUniversityDetail['status'] = REST_Controller::HTTP_OK;
|
||||
// Set the response and exit
|
||||
$this->response($updateUniversityDetail, REST_Controller::HTTP_OK); // OK (200) being the HTTP response code
|
||||
}
|
||||
else
|
||||
{
|
||||
// Set the response and exit
|
||||
$this->response([
|
||||
'message' => 'No list were found',
|
||||
'status' => REST_Controller::HTTP_NOT_FOUND
|
||||
], REST_Controller::HTTP_NOT_FOUND); // NOT_FOUND (404) being the HTTP response code
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
// check university details exist
|
||||
public function chkUnivIdExistDetail_post() {
|
||||
|
||||
$data = $this->post('data');
|
||||
$check = $this->post('check');
|
||||
$branchCode = $this->post('branchCode');
|
||||
|
||||
$checkUnivExist = $this->university_model->check_Univ_Exist($data, $check,$branchCode);// Check if the employee exist
|
||||
if ($checkUnivExist)
|
||||
{
|
||||
$checkUnivExist['status'] = REST_Controller::HTTP_OK;
|
||||
// Set the response and exit
|
||||
$this->response($checkUnivExist, REST_Controller::HTTP_OK); // OK (200) being the HTTP response code
|
||||
}
|
||||
else
|
||||
{
|
||||
// Set the response and exit
|
||||
$this->response([
|
||||
'message' => 'No list were found',
|
||||
'status' => REST_Controller::HTTP_NOT_FOUND
|
||||
], REST_Controller::HTTP_NOT_FOUND); // NOT_FOUND (404) being the HTTP response code
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
// insert university details
|
||||
public function insertUniversityfile_post() {
|
||||
|
||||
|
||||
|
||||
$imagename='';
|
||||
$size='';
|
||||
$imageSource='';
|
||||
|
||||
|
||||
if(!empty($_FILES))
|
||||
{
|
||||
$imagename = $_FILES['idProof']['name'];
|
||||
$size = $_FILES['idProof']['size'];
|
||||
$imageSource = $_FILES['idProof']['tmp_name'];
|
||||
}
|
||||
// echo $imagename;
|
||||
// echo $size;
|
||||
// echo $imageSource;
|
||||
|
||||
|
||||
$reqData = $this->post('data');
|
||||
$temp = json_decode($reqData, true);
|
||||
|
||||
//print_r($reqData);
|
||||
//die();
|
||||
// $req['CreatedBy'] = $this->post('createdBy');
|
||||
$date = date('Y-m-d H:i:s');
|
||||
//$req['CreatedOn'] = $date;
|
||||
$req['UniversityName']= $temp['UniversityName'];
|
||||
|
||||
|
||||
|
||||
// $insertUniv = $this->universityfile_model->insert_Univfile($req,$imagename,$imageSource,$size);
|
||||
$insertUniv = $this->universityfile_model->insert_Univfile($req,$imagename);
|
||||
print_r($insertUniv);
|
||||
// Check if the employee exist
|
||||
if ($insertUniv)
|
||||
{
|
||||
|
||||
$insertUniv['status'] = REST_Controller::HTTP_OK;
|
||||
// Set the response and exit
|
||||
$this->response($insertUniv, REST_Controller::HTTP_OK); // OK (200) being the HTTP response code
|
||||
}
|
||||
else
|
||||
{
|
||||
// Set the response and exit
|
||||
$this->response([
|
||||
'message' => 'No list were found',
|
||||
'status' => REST_Controller::HTTP_NOT_FOUND
|
||||
], REST_Controller::HTTP_NOT_FOUND); // NOT_FOUND (404) being the HTTP response code
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
/*
|
||||
* add activity details
|
||||
* created Surendiran
|
||||
* */
|
||||
|
||||
public function addActivityDetails_post() {
|
||||
$now = new DateTime();
|
||||
$now->setTimezone(new DateTimezone('Asia/Kolkata'));
|
||||
$details['ActivityID'] = $this->post('activityID');
|
||||
$details['ActivityName'] = $this->post('activityName');
|
||||
$details['Description'] = $this->post('description');
|
||||
$details['CreatedBy'] = $this->post('createdBy');
|
||||
$details['CreatedOn'] = $now->format('Y-m-d H:i:s');
|
||||
$details['IsActive'] = $this->post('status');
|
||||
$details['BranchCode'] = $this->post('branchCode');
|
||||
$jsonData=$this->post('activityStatus');
|
||||
$activityDetails = $this->university_model->addActivity($details,$jsonData);// Check if the users data store contains users (in case the database result returns NULL)
|
||||
if ($activityDetails) {
|
||||
$activityDetails['status'] = REST_Controller::HTTP_OK;
|
||||
// Set the response and exit
|
||||
$this->response($activityDetails, REST_Controller::HTTP_OK); // OK (200) being the HTTP response code
|
||||
} else
|
||||
{ // Set the response and exit
|
||||
$this->response([ 'message' => 'Something went wrong.please try again!',
|
||||
'status' => REST_Controller::HTTP_NOT_FOUND], REST_Controller::HTTP_NOT_FOUND); // NOT_FOUND (404) being the HTTP response code
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* get activity details
|
||||
* created by Surendiran
|
||||
* */
|
||||
public function getActivityDetails_post()
|
||||
{
|
||||
$requestedBy = $this->post('requestedBy');
|
||||
$requestedBranch = $this->post('branchCode');
|
||||
$getActivity = $this->university_model->getActivity($requestedBy,$requestedBranch);
|
||||
if ($getActivity)
|
||||
{
|
||||
$getActivity['status'] = REST_Controller::HTTP_OK;
|
||||
// Set the response and exit
|
||||
$this->response($getActivity, REST_Controller::HTTP_OK); // OK (200) being the HTTP response code
|
||||
}
|
||||
else
|
||||
{ // Set the response and exit
|
||||
$this->response([
|
||||
'message' => 'No records found!',
|
||||
'status' => REST_Controller::HTTP_NOT_FOUND
|
||||
], REST_Controller::HTTP_NOT_FOUND); // NOT_FOUND (404) being the HTTP response code
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* update activity details
|
||||
* created by Surendiran
|
||||
* */
|
||||
public function updateActivityDetails_post()
|
||||
{
|
||||
|
||||
$now = new DateTime();
|
||||
$now->setTimezone(new DateTimezone('Asia/Kolkata'));
|
||||
$details['ActivityID'] = $this->post('activityID');
|
||||
$details['ActivityName'] = $this->post('activityName');
|
||||
$details['Description'] = $this->post('description');
|
||||
$details['IsActive'] = $this->post('status');
|
||||
$details['UpdatedBy'] = $this->post('updatedBy');
|
||||
$details['UpdatedOn'] = $now->format('Y-m-d H:i:s');
|
||||
$details['BranchCode'] = $this->post('branchCode');
|
||||
$jsonData=$this->post('activityStatus');
|
||||
$activityDetails = $this->university_model->updateActivity($details,$jsonData);// Check if the users data store contains users (in case the database result returns NULL)
|
||||
|
||||
if ($activityDetails)
|
||||
{
|
||||
$activityDetails['status'] = REST_Controller::HTTP_OK;
|
||||
// Set the response and exit
|
||||
$this->response($activityDetails, REST_Controller::HTTP_OK); // OK (200) being the HTTP response code
|
||||
}
|
||||
else
|
||||
{
|
||||
// Set the response and exit
|
||||
$this->response([
|
||||
'message' => 'Something went wrong.please try again!',
|
||||
'status' => REST_Controller::HTTP_NOT_FOUND
|
||||
], REST_Controller::HTTP_NOT_FOUND); // NOT_FOUND (404) being the HTTP response code
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
/*
|
||||
* get default activity details
|
||||
* created by kms
|
||||
* */
|
||||
public function getDefaultActivityDetails_post()
|
||||
{
|
||||
$requestedBy = $this->post('requestedBy');
|
||||
$requestedBranch = $this->post('requestedBranch');
|
||||
$getDefaultActivity = $this->university_model->getDefaultActivity($requestedBy, $requestedBranch);
|
||||
if ($getDefaultActivity)
|
||||
{
|
||||
$getDefaultActivity['status'] = REST_Controller::HTTP_OK;
|
||||
// Set the response and exit
|
||||
$this->response($getDefaultActivity, REST_Controller::HTTP_OK); // OK (200) being the HTTP response code
|
||||
}
|
||||
else
|
||||
{ // Set the response and exit
|
||||
$this->response([
|
||||
'message' => 'No records found!',
|
||||
'status' => REST_Controller::HTTP_NOT_FOUND
|
||||
], REST_Controller::HTTP_NOT_FOUND); // NOT_FOUND (404) being the HTTP response code
|
||||
}
|
||||
}
|
||||
/*
|
||||
* update default activity status
|
||||
* created by kms
|
||||
* */
|
||||
|
||||
public function updateDefaultActivityDetails_post()
|
||||
{
|
||||
$now = new DateTime();
|
||||
$now->setTimezone(new DateTimezone('Asia/Kolkata'));
|
||||
$details['StudentActivityCode'] = $this->post('activityID');
|
||||
$details['StatusCode'] = $this->post('activityName');
|
||||
//$details['IsActive'] = $this->post('status');
|
||||
$details['UpdatedBy'] = $this->post('updatedBy');
|
||||
$details['BranchCode'] = $this->post('reqBranch');
|
||||
$details['UpdatedOn'] = $now->format('Y-m-d H:i:s');
|
||||
$jsonData=$this->post('activityStatus');
|
||||
$activityDetails = $this->university_model->updateDefaultActivity($details,$jsonData);// Check if the users data store contains users (in case the database result returns NULL)
|
||||
|
||||
if ($activityDetails)
|
||||
{
|
||||
$activityDetails['status'] = REST_Controller::HTTP_OK;
|
||||
// Set the response and exit
|
||||
$this->response($activityDetails, REST_Controller::HTTP_OK); // OK (200) being the HTTP response code
|
||||
}
|
||||
else
|
||||
{
|
||||
// Set the response and exit
|
||||
$this->response([
|
||||
'message' => 'Something went wrong.please try again!',
|
||||
'status' => REST_Controller::HTTP_NOT_FOUND
|
||||
], REST_Controller::HTTP_NOT_FOUND); // NOT_FOUND (404) being the HTTP response code
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
@ -34,7 +34,7 @@ class University_Controller extends REST_Controller {
|
||||
$this->methods['updateDefaultActivityDetails_post']['limit'] = 100;
|
||||
|
||||
// load the university model
|
||||
$this->load->model('University_model', 'university_model');
|
||||
$this->load->model('Universityfile_model', 'universityfile_model');
|
||||
}
|
||||
|
||||
// get university details
|
||||
@ -43,7 +43,7 @@ class University_Controller extends REST_Controller {
|
||||
$loginUserId = $reqData['localUserID'];
|
||||
$loginUserBranchId = $reqData['localBranchID'];
|
||||
$loginUserType = $reqData['localType'];
|
||||
$getUniversityListDetails = $this->university_model->get_university_list($loginUserBranchId);// Check if the employee exist
|
||||
$getUniversityListDetails = $this->universityfile_model->get_university_list($loginUserBranchId);// Check if the employee exist
|
||||
if ($getUniversityListDetails)
|
||||
{
|
||||
$getUniversityListDetails['status'] = REST_Controller::HTTP_OK;
|
||||
|
||||
@ -69,6 +69,43 @@ class Dashboard_model extends CI_Model
|
||||
}
|
||||
return $result;
|
||||
}
|
||||
/*
|
||||
* get university registerd student details
|
||||
* created by kms
|
||||
* */
|
||||
public function get_univ_registered_student($details){
|
||||
$this->db->distinct();
|
||||
$this->db->select('UniversityID,UniversityName');
|
||||
$this->db->from(UNIVERSITY);
|
||||
$this->db->order_by('ID','DESC');
|
||||
$this->db->where('BranchCode',$details['localBranchID']);
|
||||
$getUnivDetails = $this->db->get();
|
||||
if($getUnivDetails->result()){
|
||||
$resultDetails['resultStatus']=true;
|
||||
foreach ($getUnivDetails->result() as $rows){
|
||||
$fetchDetails['UniversityID']=$rows->UniversityID;
|
||||
$fetchDetails['UniversityName']=$rows->UniversityName;
|
||||
$this->db->select('StudentID');
|
||||
$this->db->from(STUDENTCOURSE);
|
||||
$this->db->where('BranchID',$details['localBranchID']);
|
||||
$this->db->where('UniversityID',$rows->UniversityID);
|
||||
$getRegisterDetails = $this->db->get();
|
||||
if($getRegisterDetails->num_rows()>0){
|
||||
$fetchDetails['StudentCounts']=$getRegisterDetails->num_rows();
|
||||
}
|
||||
else{
|
||||
$fetchDetails['StudentCounts']=0;
|
||||
}
|
||||
$getArray[]=$fetchDetails;
|
||||
}
|
||||
$resultDetails['details']=$getArray;
|
||||
}
|
||||
else{
|
||||
$resultDetails['resultStatus']=false;
|
||||
$resultDetails['Message']="No records found!";
|
||||
}
|
||||
return $resultDetails;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
@ -793,8 +793,9 @@ class Hallticket_model extends CI_Model
|
||||
//GET Year Based Semester
|
||||
if($ind['SemID'] == 1)//First Year
|
||||
{
|
||||
for($i = 1;$i <= 2; $i++)
|
||||
{
|
||||
$i = 1;
|
||||
// for($i = 1;$i <= 1; $i++)
|
||||
// {
|
||||
$sql = "SELECT T_SemSubMap_Child.SubjectID,T_SubjectMaster.SubjectCode,T_SubjectMaster.SubjectName,T_SemSubMap_Master.SemesterID,T_Batch_Schedule_Child.ScheduleDate,T_Batch_Schedule_Child.FromTime,T_Batch_Schedule_Child.ToTime FROM T_SemSubMap_Child
|
||||
JOIN T_SubjectMaster on T_SemSubMap_Child.SubjectID = T_SubjectMaster.SubjectID
|
||||
JOIN T_SemSubMap_Master on T_SemSubMap_Child.MapID = T_SemSubMap_Master.MapID and T_SemSubMap_Master.UniversityID = ? and T_SemSubMap_Master.CourseID = ? and T_SemSubMap_Master.SemesterID = ? and T_SemSubMap_Master.BranchCode = ? and T_SemSubMap_Child.IsActive = 1
|
||||
@ -807,15 +808,16 @@ class Hallticket_model extends CI_Model
|
||||
//array_push($id['FeeDetails'][$key2],$ind);
|
||||
|
||||
|
||||
}
|
||||
// }
|
||||
array_splice($id['FeeDetails'][$key2],0,6,$in1);
|
||||
|
||||
}
|
||||
|
||||
else if($ind['SemID'] == 2)//Sec Year
|
||||
{
|
||||
for($j = 3;$j <= 4; $j++)
|
||||
{
|
||||
$j = 3;
|
||||
// for($j = 3;$j <= 3; $j++)
|
||||
// {
|
||||
$sql = "SELECT T_SemSubMap_Child.SubjectID,T_SubjectMaster.SubjectCode,T_SubjectMaster.SubjectName,T_SemSubMap_Master.SemesterID,T_Batch_Schedule_Child.ScheduleDate,T_Batch_Schedule_Child.FromTime,T_Batch_Schedule_Child.ToTime FROM T_SemSubMap_Child
|
||||
JOIN T_SubjectMaster on T_SemSubMap_Child.SubjectID = T_SubjectMaster.SubjectID
|
||||
JOIN T_SemSubMap_Master on T_SemSubMap_Child.MapID = T_SemSubMap_Master.MapID and T_SemSubMap_Master.UniversityID = ? and T_SemSubMap_Master.CourseID = ? and T_SemSubMap_Master.SemesterID = ? and T_SemSubMap_Master.BranchCode = ? and T_SemSubMap_Child.IsActive = 1
|
||||
@ -828,15 +830,16 @@ class Hallticket_model extends CI_Model
|
||||
//array_push($id['FeeDetails'][$key2],$ind);
|
||||
|
||||
|
||||
}
|
||||
// }
|
||||
array_splice($id['FeeDetails'][$key2],0,6,$in2);
|
||||
}
|
||||
|
||||
|
||||
else if($ind['SemID'] == 3)
|
||||
{
|
||||
for($k = 5;$k <= 6; $k++)
|
||||
{
|
||||
$k = 5;
|
||||
// for($k = 5;$k <= 5; $k++)
|
||||
// {
|
||||
$sql = "SELECT T_SemSubMap_Child.SubjectID,T_SubjectMaster.SubjectCode,T_SubjectMaster.SubjectName,T_SemSubMap_Master.SemesterID,T_Batch_Schedule_Child.ScheduleDate,T_Batch_Schedule_Child.FromTime,T_Batch_Schedule_Child.ToTime FROM T_SemSubMap_Child
|
||||
JOIN T_SubjectMaster on T_SemSubMap_Child.SubjectID = T_SubjectMaster.SubjectID
|
||||
JOIN T_SemSubMap_Master on T_SemSubMap_Child.MapID = T_SemSubMap_Master.MapID and T_SemSubMap_Master.UniversityID = ? and T_SemSubMap_Master.CourseID = ? and T_SemSubMap_Master.SemesterID = ? and T_SemSubMap_Master.BranchCode = ? and T_SemSubMap_Child.IsActive = 1
|
||||
@ -849,15 +852,16 @@ class Hallticket_model extends CI_Model
|
||||
//array_push($id['FeeDetails'][$key2],$ind);
|
||||
|
||||
|
||||
}
|
||||
// }
|
||||
array_splice($id['FeeDetails'][$key2],0,6,$in3);
|
||||
}
|
||||
|
||||
|
||||
else if($ind['SemID'] == 4)
|
||||
{
|
||||
for($l = 7;$l <= 8; $l++)
|
||||
{
|
||||
$l = 7;
|
||||
// for($l = 7;$l <= 7; $l++)
|
||||
// {
|
||||
$sql = "SELECT T_SemSubMap_Child.SubjectID,T_SubjectMaster.SubjectCode,T_SubjectMaster.SubjectName,T_SemSubMap_Master.SemesterID,T_Batch_Schedule_Child.ScheduleDate,T_Batch_Schedule_Child.FromTime,T_Batch_Schedule_Child.ToTime FROM T_SemSubMap_Child
|
||||
JOIN T_SubjectMaster on T_SemSubMap_Child.SubjectID = T_SubjectMaster.SubjectID
|
||||
JOIN T_SemSubMap_Master on T_SemSubMap_Child.MapID = T_SemSubMap_Master.MapID and T_SemSubMap_Master.UniversityID = ? and T_SemSubMap_Master.CourseID = ? and T_SemSubMap_Master.SemesterID = ? and T_SemSubMap_Master.BranchCode = ? and T_SemSubMap_Child.IsActive = 1
|
||||
@ -870,7 +874,7 @@ class Hallticket_model extends CI_Model
|
||||
//array_push($id['FeeDetails'][$key2],$ind);
|
||||
|
||||
|
||||
}
|
||||
// }
|
||||
array_splice($id['FeeDetails'][$key2],0,6,$in4);
|
||||
}
|
||||
|
||||
|
||||
462
Apollo/api/application/models/Universityfile_model.php
Normal file
@ -0,0 +1,462 @@
|
||||
<?php
|
||||
/**
|
||||
* Date: 11/9/17
|
||||
* Time: 5:28 PM
|
||||
*/
|
||||
defined('BASEPATH') OR exit('No direct script access allowed');
|
||||
|
||||
class Universityfile_model extends CI_Model
|
||||
{
|
||||
|
||||
/*
|
||||
* get university details
|
||||
* params:
|
||||
* created by kdk
|
||||
* */
|
||||
|
||||
/*
|
||||
* get University Details
|
||||
*/
|
||||
|
||||
// get university list
|
||||
public function get_university_list($loginUserBranchId=null) {
|
||||
$this->db->select('*');
|
||||
$this->db->where('BranchCode',$loginUserBranchId);
|
||||
$this->db->order_by('CreatedOn', 'DESC');
|
||||
$this->db->from(UNIVERSITY);
|
||||
$univDetails = $this->db->get();
|
||||
$universityDetails = $univDetails->result();
|
||||
if (count($universityDetails) > 0) {
|
||||
$results['univList'] = true;
|
||||
$results['university_details'] = $universityDetails;
|
||||
} else {
|
||||
$results['univList'] = false;
|
||||
$results['message'] = 'No record found';
|
||||
}
|
||||
return $results;
|
||||
|
||||
print_r($results);
|
||||
}
|
||||
|
||||
// update univesity details
|
||||
public function update_university_details($updateFor, $Arr,$imageName, $imageSource, $imageSize) {
|
||||
|
||||
if($imageSource == '')
|
||||
{
|
||||
//echo "if";
|
||||
$imageNameDb = 'default.jpeg';
|
||||
// $Arr['ProfilePicPath'] = "university/".$imageNameDb;
|
||||
}
|
||||
|
||||
else
|
||||
{
|
||||
//echo "else";
|
||||
$target = "../images/university/";
|
||||
$getUploadStatus = $this->upload_image($imageSource, $imageSize, $target);
|
||||
$imageNameDb = $getUploadStatus['status'] == true ? $getUploadStatus['imageName'] : $getUploadStatus['imageName'] = 'default.jpeg';
|
||||
// echo $imageNameDb;
|
||||
$Arr['ProfilePicPath'] = "university/".$imageNameDb;
|
||||
}
|
||||
|
||||
|
||||
// print_r($Arr);
|
||||
// die();
|
||||
|
||||
|
||||
$this->db->where('UniversityID', $updateFor);
|
||||
$this->db->where('BranchCode', $Arr['BranchCode']);
|
||||
$this->db->where('ID', $Arr['ID']);
|
||||
$this->db->update(UNIVERSITY, $Arr);
|
||||
if ($this->db->affected_rows() == '1') {
|
||||
$result['updateUniversityStatus'] = true;
|
||||
$result['message'] = "Successfully University details Updated";
|
||||
} else {
|
||||
$result['updateUniversityStatus'] = false;
|
||||
$result['message'] = "University details not Updated";
|
||||
}
|
||||
return $result;
|
||||
}
|
||||
|
||||
// check exist details
|
||||
public function check_Univ_Exist($data, $check,$branchCode) {
|
||||
// check univ with branch code
|
||||
$this->db->select('*');
|
||||
$this->db->from(UNIVERSITY);
|
||||
$this->db->where('UniversityID', $data);
|
||||
$this->db->where('BranchCode', $branchCode);
|
||||
if ($this->db->get()->first_row()) {
|
||||
$result['existUniv'] = true;
|
||||
$result['message'] = "This University Id is already exist!";
|
||||
} else {
|
||||
$result['existUniv'] = false;
|
||||
}
|
||||
return $result;
|
||||
}
|
||||
|
||||
// add university details
|
||||
public function insert_Univfile($arr,$imageName, $imageSource, $imageSize) {
|
||||
|
||||
|
||||
|
||||
if($imageSource == '')
|
||||
{
|
||||
//echo "if";
|
||||
$imageNameDb = 'default.jpeg';
|
||||
$arr['ProfilePicPath'] = "university/".$imageNameDb;
|
||||
}
|
||||
|
||||
else
|
||||
{
|
||||
//echo "else";
|
||||
$target = "../images/university/";
|
||||
$getUploadStatus = $this->upload_image($imageSource, $imageSize, $target);
|
||||
$imageNameDb = $getUploadStatus['status'] == true ? $getUploadStatus['imageName'] : $getUploadStatus['imageName'] = 'default.jpeg';
|
||||
// echo $imageNameDb;
|
||||
$arr['ProfilePicPath'] = "university/".$imageNameDb;
|
||||
}
|
||||
|
||||
|
||||
// // echo $imageName;
|
||||
// // echo $imageSource;
|
||||
// // echo $imageSize;
|
||||
// echo $imageSource;
|
||||
//die();
|
||||
$this->db->select('*');
|
||||
$this->db->from(UNIVERSITYFILE);
|
||||
$this->db->where('UniversityID', $arr['UniversityID']);
|
||||
$this->db->where('BranchCode', $arr['BranchCode']);
|
||||
if ($this->db->get()->first_row()) {
|
||||
$result['addUniv'] = false;
|
||||
$result['message'] = "This University Id is already exist!";
|
||||
} else {
|
||||
$this->db->insert(UNIVERSITYFILE, $arr);
|
||||
if ($this->db->affected_rows() == '1') {
|
||||
$result['addUniv'] = true;
|
||||
$result['message'] = "Successfully University file added";
|
||||
} else {
|
||||
$result['addUniv'] = false;
|
||||
$result['message'] = "Something went wrong.please try again";
|
||||
}
|
||||
return $result;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
public function addActivity($arrayDetails=null,$jsonData=null)
|
||||
{
|
||||
$this->db->select('ActivityID,ActivityName');
|
||||
$this->db->where('ActivityName', $arrayDetails['ActivityName']);
|
||||
$this->db->where('BranchCode', $arrayDetails['BranchCode']);
|
||||
if($this->db->get(ACTIVITY)->first_row()){
|
||||
$result['activityStatus'] = false;
|
||||
$result['message'] = "Activity name is already exist!";
|
||||
}
|
||||
else{
|
||||
$this->db->insert(ACTIVITY, $arrayDetails);
|
||||
if($this->db->affected_rows() == '1'){
|
||||
$last = $this->db->order_by('ActivityID',"desc")->limit(1)->get(ACTIVITY)->row();
|
||||
$lastActivityID=$last->ActivityID;
|
||||
|
||||
if($jsonData){
|
||||
|
||||
foreach ($jsonData as $srow){
|
||||
$status_array["StatusName"]=$srow['id'];
|
||||
$status_array["ActivityID"]=$lastActivityID;
|
||||
$status_array["IsActive"]=$arrayDetails['IsActive'];
|
||||
$status_array["CreatedBy"]=$arrayDetails['CreatedBy'];
|
||||
$status_array["CreatedOn"]=$arrayDetails['CreatedOn'];
|
||||
$this->db->insert(ACTIVITY_STATUS, $status_array);
|
||||
}
|
||||
}
|
||||
$result['activityStatus'] = true;
|
||||
$result['message'] = "Successfully activity details added";
|
||||
|
||||
}
|
||||
else {
|
||||
$result['activityStatus'] = false;
|
||||
$result['message'] = "Something went wrong.please try again";
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
return $result;
|
||||
|
||||
}
|
||||
|
||||
/*
|
||||
* get Activity details
|
||||
* parama id
|
||||
* created by Surendiran
|
||||
* */
|
||||
|
||||
public function getActivity($requestedBy=null,$requestedBranch=null)
|
||||
{
|
||||
$this->db->distinct();
|
||||
$this->db->where('BranchCode',$requestedBranch);
|
||||
$this->db->order_by('ActivityID','DESC');
|
||||
$this->db->select('ActivityID,ActivityName,Description,IsActive');
|
||||
$activityDetails=$this->db->get(ACTIVITY);
|
||||
if($activityDetails->result()){
|
||||
|
||||
$activity_result['activityStatus'] = true;
|
||||
foreach ($activityDetails->result() as $row){
|
||||
$result_array['ActivityID'] = $row->ActivityID;
|
||||
$result_array['ActivityName'] = $row->ActivityName;
|
||||
$result_array['IsActive'] = $row->IsActive;
|
||||
$result_array['Description'] = $row->Description;
|
||||
$this->db->select('AVS.StatusID,PLD.ListCode,PLD.ListName');
|
||||
$this->db->from(ACTIVITY_STATUS .' as AVS');
|
||||
$this->db->join(PICK_LIST_DETAILS.' as PLD', 'PLD.ListCode = AVS.StatusName');
|
||||
$this->db->where('AVS.ActivityID',$row->ActivityID);
|
||||
$this->db->where('AVS.IsActive','1');
|
||||
$result_array['statusDetails']=$this->db->get()->result();
|
||||
$result[]=$result_array;
|
||||
}
|
||||
|
||||
$activity_result['details'] = $result;
|
||||
|
||||
|
||||
}
|
||||
else {
|
||||
$activity_result['activityStatus'] = false;
|
||||
$activity_result['details'] = "No records found!";
|
||||
}
|
||||
$activity_result['masterStatusList']=$this->getAllStatusList('1',$requestedBranch);
|
||||
return $activity_result;
|
||||
|
||||
}
|
||||
/*
|
||||
* get status details
|
||||
* created by kms
|
||||
* */
|
||||
|
||||
public function getAllStatusList($groupName=null, $branch = null)
|
||||
{
|
||||
$this->db->select('ListCode,ListName');
|
||||
$this->db->where('ListGroup',$groupName);
|
||||
$this->db->where('IsActive','1');
|
||||
$this->db->where('BranchCode', $branch);
|
||||
$this->db->order_by('ListCode','ASC');
|
||||
$status = $this->db->get(PICK_LIST_DETAILS);
|
||||
return $status->result();
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* update activity details details
|
||||
* created by Surendiran
|
||||
* */
|
||||
public function updateActivity($arrayDetails=null,$jsonData=null) {
|
||||
|
||||
$this->db->select('ActivityName');
|
||||
$this->db->where('ActivityName',$arrayDetails['ActivityName']);
|
||||
$this->db->where('ActivityID !=',$arrayDetails['ActivityID']);
|
||||
$this->db->where('BranchCode',$arrayDetails['BranchCode']);
|
||||
if($this->db->get(ACTIVITY)->first_row()){
|
||||
$result['activityStatus'] = false;
|
||||
$result['message'] = "Activity name is already exist!";
|
||||
}
|
||||
else{
|
||||
|
||||
$this->db->where('ActivityID ',$arrayDetails['ActivityID']);
|
||||
$updateStatus=$this->db->update(ACTIVITY, $arrayDetails);
|
||||
if($updateStatus){
|
||||
$deactiveStatus['IsActive']=false;
|
||||
$deactiveStatus['UpdatedBy']=$arrayDetails['UpdatedBy'];
|
||||
$deactiveStatus['UpdatedOn']=$arrayDetails['UpdatedOn'];
|
||||
$this->db->where('ActivityID ',$arrayDetails['ActivityID']);
|
||||
$updateActivityStatusDeactive = $this->db->update(ACTIVITY_STATUS, $deactiveStatus);
|
||||
if($updateActivityStatusDeactive){
|
||||
|
||||
if($jsonData){
|
||||
|
||||
foreach ($jsonData as $urow){
|
||||
|
||||
$this->db->select('StatusName');
|
||||
$this->db->where('StatusName',$urow);
|
||||
$this->db->where('ActivityID',$arrayDetails['ActivityID']);
|
||||
if($this->db->get(ACTIVITY_STATUS)->first_row()){
|
||||
$existStatusUpdate['IsActive']=true;
|
||||
$existStatusUpdate['UpdatedBy']=$arrayDetails['UpdatedBy'];
|
||||
$existStatusUpdate['UpdatedOn']=$arrayDetails['UpdatedOn'];
|
||||
$this->db->where('StatusName',$urow);
|
||||
$this->db->where('ActivityID',$arrayDetails['ActivityID']);
|
||||
$this->db->update(ACTIVITY_STATUS, $existStatusUpdate);
|
||||
}
|
||||
else{
|
||||
$update_array["StatusName"]=$urow;
|
||||
$update_array["ActivityID"]=$arrayDetails['ActivityID'];
|
||||
$update_array["IsActive"]=true;
|
||||
$update_array["CreatedBy"]=$arrayDetails['UpdatedBy'];
|
||||
$update_array["CreatedOn"]=$arrayDetails['UpdatedOn'];
|
||||
$this->db->insert(ACTIVITY_STATUS, $update_array);
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
else{
|
||||
$activateStatus['IsActive']=true;
|
||||
$this->db->where('ActivityID ',$arrayDetails['ActivityID']);
|
||||
$this->db->update(ACTIVITY_STATUS, $activateStatus);
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
$result['activityStatus'] = true;
|
||||
$result['message'] = "Successfully activity details updated";
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
else {
|
||||
$result['activityStatus'] = false;
|
||||
$result['message'] = "Something went wrong.please try again";
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
return $result;
|
||||
}
|
||||
|
||||
/*
|
||||
* get default activity details
|
||||
* created by kms
|
||||
* */
|
||||
public function getDefaultActivity($reqBy, $reqBranch)
|
||||
{
|
||||
$arr = array('ListGroup'=>2,'ListGroup'=>6);
|
||||
$this->db->distinct();
|
||||
$this->db->select('ListName,ListCode,IsActive');
|
||||
$this->db->order_by('ListName','ASC');
|
||||
$this->db->or_where('ListGroup','2');
|
||||
$this->db->or_where('ListGroup','6');
|
||||
$this->db->or_where('ListGroup','7');
|
||||
$this->db->or_where('ListGroup','8');
|
||||
$this->db->or_where('ListGroup','9');
|
||||
$defaultActivityDetails=$this->db->get(PICK_LIST_DETAILS);
|
||||
if($defaultActivityDetails->result()){
|
||||
$activity_result['activityStatus'] = true;
|
||||
foreach ($defaultActivityDetails->result() as $row){
|
||||
$result_array['ActivityID'] = $row->ListCode;
|
||||
$result_array['ActivityName'] = $row->ListName;
|
||||
$result_array['IsActive'] = $row->IsActive;
|
||||
$this->db->select('DA.StudentActivityCode,PLD.ListCode,PLD.ListName');
|
||||
$this->db->from(DEFAULTACTIVITY .' as DA');
|
||||
$this->db->join(PICK_LIST_DETAILS.' as PLD', 'PLD.ListCode = DA.StatusCode');
|
||||
// $this->db->where('PLD.IsActive','1');
|
||||
$this->db->where('DA.IsActive','1');
|
||||
$this->db->where('DA.BranchCode', $reqBranch);
|
||||
// $this->db->where('PLD.BranchCode', $reqBranch);
|
||||
$this->db->where('DA.StudentActivityCode',$row->ListCode);
|
||||
$result_array['statusDetails']=$this->db->get()->result();
|
||||
$result[]=$result_array;
|
||||
}
|
||||
$activity_result['details'] = $result;
|
||||
}
|
||||
else {
|
||||
$activity_result['activityStatus'] = false;
|
||||
$activity_result['details'] = "No records found!";
|
||||
}
|
||||
$activity_result['masterStatusList']=$this->getAllStatusList('1', $reqBranch);
|
||||
return $activity_result;
|
||||
|
||||
}
|
||||
/*
|
||||
* update default activity status
|
||||
* created by kms
|
||||
* */
|
||||
public function updateDefaultActivity($arrayDetails=null,$jsonData=null) {
|
||||
|
||||
$branchCode = $arrayDetails['BranchCode'];
|
||||
$deactiveStatus['IsActive']=false;
|
||||
$deactiveStatus['UpdatedBy']=$arrayDetails['UpdatedBy'];
|
||||
$deactiveStatus['UpdatedOn']=$arrayDetails['UpdatedOn'];
|
||||
$this->db->where('BranchCode',$branchCode);
|
||||
$this->db->where('StudentActivityCode ',$arrayDetails['StudentActivityCode']);
|
||||
$updateActivityStatusDeactive = $this->db->update(DEFAULTACTIVITY, $deactiveStatus);
|
||||
if($updateActivityStatusDeactive){
|
||||
|
||||
if($jsonData){
|
||||
|
||||
foreach ($jsonData as $urow){
|
||||
|
||||
$this->db->select('StatusCode');
|
||||
$this->db->where('StatusCode',$urow);
|
||||
$this->db->where('BranchCode',$branchCode);
|
||||
$this->db->where('StudentActivityCode',$arrayDetails['StudentActivityCode']);
|
||||
if($this->db->get(DEFAULTACTIVITY)->first_row()){
|
||||
$existStatusUpdate['IsActive']=true;
|
||||
$existStatusUpdate['UpdatedBy']=$arrayDetails['UpdatedBy'];
|
||||
$existStatusUpdate['UpdatedOn']=$arrayDetails['UpdatedOn'];
|
||||
$this->db->where('StatusCode',$urow);
|
||||
$this->db->where('StudentActivityCode',$arrayDetails['StudentActivityCode']);
|
||||
$this->db->update(DEFAULTACTIVITY, $existStatusUpdate);
|
||||
}
|
||||
else{
|
||||
$update_array["StatusCode"]=$urow;
|
||||
$update_array["StudentActivityCode"]=$arrayDetails['StudentActivityCode'];
|
||||
$update_array["IsActive"]=true;
|
||||
$update_array["CreatedBy"]=$arrayDetails['UpdatedBy'];
|
||||
$update_array["CreatedOn"]=$arrayDetails['UpdatedOn'];
|
||||
$update_array["BranchCode"]= $branchCode;
|
||||
$this->db->insert(DEFAULTACTIVITY, $update_array);
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
/*else{
|
||||
$activateStatus['IsActive']=true;
|
||||
$this->db->where('StudentActivityCode ',$arrayDetails['StudentActivityCode']);
|
||||
$this->db->update(DEFAULTACTIVITY, $activateStatus);
|
||||
|
||||
}*/
|
||||
|
||||
|
||||
|
||||
$result['activityStatus'] = true;
|
||||
$result['message'] = "Successfully status updated";
|
||||
}
|
||||
|
||||
|
||||
|
||||
else {
|
||||
$result['activityStatus'] = false;
|
||||
$result['message'] = "Something went wrong.please try again";
|
||||
}
|
||||
|
||||
|
||||
|
||||
return $result;
|
||||
}
|
||||
|
||||
|
||||
// image upload in taget path
|
||||
public function upload_image( $imageSource, $size, $target ) {
|
||||
|
||||
//echo "fn";
|
||||
$key2 = substr(str_shuffle('abcdefghijklmnopqrstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ'), 0, 12);
|
||||
$new_regNo = "Dri_" . $key2 . "." . 'jpeg';
|
||||
$targetPlace = $target . $new_regNo;
|
||||
// echo $imageSource;
|
||||
// exit();
|
||||
if(!move_uploaded_file($imageSource , $targetPlace))
|
||||
{//echo "if";
|
||||
return $result['status'] = false;
|
||||
|
||||
$result['imageName'] = $new_regNo;
|
||||
}
|
||||
else
|
||||
{
|
||||
// echo "else";
|
||||
$result['status'] = true;
|
||||
$result['imageName'] = $new_regNo;
|
||||
|
||||
return $result;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
@ -81,6 +81,7 @@
|
||||
"report": {
|
||||
"TITLE": "REPORTS",
|
||||
"studmatstatus": "STUDY MATERIAL STATUS ",
|
||||
"unidataupload":"UNIVERSITY DATA UPLOAD",
|
||||
"mstatus": "MARK CARD STATUS ",
|
||||
"certificate_status": "CERTIFICATE STATUS ",
|
||||
"certificate_mark_status": "MARKCARD/CERTIFICATE ISSUED STATUS ",
|
||||
|
||||
@ -205,6 +205,7 @@ app.constant('JS_REQUIRES', {
|
||||
'htmlToPlaintext': 'assets/js/filters/htmlToPlaintext.js',
|
||||
// reports
|
||||
'reportCtrl':'assets/js/controllers/reportCtrl.js',
|
||||
'report_university_file_uploadCtrl':'assets/js/controllers/report_university_file_uploadCtrl.js',
|
||||
'report_study_material_statusCtrl':'assets/js/controllers/report_study_material_statusCtrl.js',
|
||||
'report_markcard_statusCtrl':'assets/js/controllers/report_markcard_statusCtrl.js',
|
||||
'report_certificateCtrl':'assets/js/controllers/report_certificateCtrl.js',
|
||||
|
||||
@ -585,6 +585,12 @@ app.config(['$stateProvider', '$urlRouterProvider', '$controllerProvider', '$com
|
||||
ncyBreadcrumb: {
|
||||
label: 'Reports'
|
||||
}
|
||||
}).state('app.reports.universityfileupload', {
|
||||
url: '/report_university_file_uploadCtrl',
|
||||
templateUrl: "assets/views/report_universityfileupload.html",
|
||||
resolve: loadSequence('ui.select','report_university_file_uploadCtrl','ngTable', 'ladda', 'angular-ladda'),
|
||||
title: 'university file upload',
|
||||
|
||||
}).state('app.reports.studymaterial', {
|
||||
url: '/report_study_material_statusCtrl',
|
||||
templateUrl: "assets/views/report_studymaterialstatus.html",
|
||||
|
||||
@ -10,7 +10,7 @@ app.controller('dashboardCtrl', ["$scope","$rootScope", "toaster", "$filter", "n
|
||||
* this method called from view ng-init directive
|
||||
* created by kms
|
||||
* */
|
||||
|
||||
$scope.getLoginType=JSON.parse(localStorage.getItem('localObj')).localType;
|
||||
$scope.initCallTracking = function () {
|
||||
$rootScope.pendingFolloupDetails = [];
|
||||
var getCallTrack = {
|
||||
@ -184,10 +184,11 @@ app.controller('OnotherCtrl', ["$scope", "toaster", "$filter", "$http", "API_POI
|
||||
var localDetails = ipCookie('cookiechk');
|
||||
|
||||
$scope.init = function () {
|
||||
$scope.this_Student = 0;
|
||||
$scope.this_Staff = 0;
|
||||
$scope.this_TotalUser = 0;
|
||||
$scope.getTotalUsers();
|
||||
// $scope.this_Student = 0;
|
||||
// $scope.this_Staff = 0;
|
||||
// $scope.this_TotalUser = 0;
|
||||
// $scope.getTotalUsers();
|
||||
$scope.getUniversityRegisteredDetails();
|
||||
|
||||
}
|
||||
|
||||
@ -284,6 +285,34 @@ app.controller('OnotherCtrl', ["$scope", "toaster", "$filter", "$http", "API_POI
|
||||
legendTemplate: '<ul class="tc-chart-js-legend"><% for (var i=0; i<segments.length; i++){%><li><span style="background-color:<%=segments[i].fillColor%>"></span><%if(segments[i].label){%><%=segments[i].label%><%}%></li><%}%></ul>'
|
||||
|
||||
};
|
||||
/*
|
||||
* get university based student registration details
|
||||
* created by kms
|
||||
* */
|
||||
$scope.getUniversityRegisteredDetails = function () {
|
||||
$scope.registerdStudentDetails="";
|
||||
$scope.notEmptyRegistration=true;
|
||||
var req = {
|
||||
method: 'POST',
|
||||
url: apiPoint.url + 'getUniversityRegisteredStudent/',
|
||||
headers: {
|
||||
'Content-Type': 'application/json'
|
||||
},
|
||||
data: {
|
||||
data: localDetails
|
||||
}
|
||||
};
|
||||
$http(req).then(function (response) {
|
||||
if (response.data) {
|
||||
$scope.notEmptyRegistration=response.data.resultStatus;
|
||||
$scope.registerdStudentDetails=response.data.details;
|
||||
|
||||
} else {
|
||||
$scope.registerdStudentDetails="";
|
||||
$scope.notEmptyRegistration=false;
|
||||
}
|
||||
});
|
||||
};
|
||||
|
||||
}]);
|
||||
app.filter('unique', function() {
|
||||
|
||||
@ -332,15 +332,19 @@ $scope.isLoaderTxt = "Loading...";
|
||||
|
||||
if(AttendanceTableID_AM != "")
|
||||
{
|
||||
console.log('AttendanceTableID_AM');
|
||||
doc1.autoTable(AttendanceTableID_AM.columns, AttendanceTableID_AM.data, options1);
|
||||
}
|
||||
doc1.save(fileNameAM);
|
||||
}
|
||||
|
||||
|
||||
if(AttendanceTableID_PM != "")
|
||||
{
|
||||
console.log('AttendanceTableID_AM');
|
||||
doc2.autoTable(AttendanceTableID_PM.columns, AttendanceTableID_PM.data, options2);
|
||||
}
|
||||
doc2.save(fileNamePM);
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@ -0,0 +1,358 @@
|
||||
'use strict';
|
||||
/**
|
||||
* controllers for ng-table
|
||||
* Simple table with sorting and filtering on AngularJS
|
||||
*/
|
||||
|
||||
app.controller('report_university-file-uploadCtrl.js', ["$scope", "toaster", "$filter", "ngTableParams", "$http", "API_POINTS", "$state", '$rootScope', '$cookies', 'md5', 'ipCookie', '$timeout', '$window', function ($scope, toaster, $filter, ngTableParams, $http, apiPoint, $state, $rootScope, $cookies, md5, ipCookie, $timeout, $window) {
|
||||
/**
|
||||
* university details capture
|
||||
* by : kdk
|
||||
*/
|
||||
// get local cliend details
|
||||
var localDetail = JSON.parse(localStorage.getItem('localObj'));
|
||||
var localDetails = ipCookie('cookiechk');
|
||||
//alert(JSON.stringify(localDetail));
|
||||
|
||||
$scope.myModel = {
|
||||
|
||||
'UniversityName': '',
|
||||
// 'UniversityID': '',
|
||||
// 'UniversityShortName': '',
|
||||
// 'MobileNumber': '',
|
||||
// 'EmailID': '',
|
||||
// 'Address': '',
|
||||
// 'switchsetting': true,
|
||||
|
||||
|
||||
|
||||
};
|
||||
|
||||
|
||||
$scope.init = function() {
|
||||
// alert();
|
||||
const LOCALTYPE = localDetail.localType;
|
||||
if (localDetail != null && (LOCALTYPE == 'R003' || LOCALTYPE == 'R004' )) {
|
||||
$scope.getUniversityList();
|
||||
}else {
|
||||
if(localDetail != null && LOCALTYPE != 'R001') {
|
||||
$state.go('app.dashboard');
|
||||
} else {
|
||||
ipCookie.remove('cookiechk');
|
||||
window.localStorage.clear();
|
||||
$state.go('login.signin');
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
// sorting function for table params
|
||||
$scope.sort = function (keyname) {
|
||||
$scope.sortKey = keyname; //set the sortKey to the param passed
|
||||
$scope.reverse = !$scope.reverse; //if true make it false and vice versa
|
||||
}
|
||||
|
||||
$scope.getUniversityList = function () {
|
||||
$scope.loader = true;
|
||||
var empListreq = {
|
||||
method: 'POST',
|
||||
url: apiPoint.url + 'getUniversity/',
|
||||
headers: {
|
||||
'Content-Type': 'application/json'
|
||||
},
|
||||
data: {
|
||||
data: localDetails
|
||||
}
|
||||
};
|
||||
$http(empListreq).then(function (response) {
|
||||
if (response.data.univList) {
|
||||
$scope.loader = false;
|
||||
$scope.emptyUniversity = true;
|
||||
$scope.univ = response.data.university_details;
|
||||
} else {
|
||||
$scope.loader = false;
|
||||
$scope.emptyUniversity = false;
|
||||
}
|
||||
});
|
||||
|
||||
}
|
||||
|
||||
// check employee Id existing
|
||||
$scope.checkUnivIdExist = function () {
|
||||
var checkReq = {
|
||||
method: 'POST',
|
||||
url: apiPoint.url + 'chkUnivIdExistDetail/',
|
||||
headers: {
|
||||
'Content-Type': 'application/json'
|
||||
},
|
||||
data: {
|
||||
data: $scope.myModel.UniversityID,
|
||||
check: 'univId',
|
||||
branchCode: localDetails.localBranchID,
|
||||
}
|
||||
};
|
||||
$http(checkReq).then(function (response) {
|
||||
if (response.data.existUniv === true) {
|
||||
swal("", "University Id already exists", "warning");
|
||||
$scope.myModel.UniversityID = '';
|
||||
} else {
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
//-------------------------------------------------------------->
|
||||
// getting for image to show
|
||||
//-------------------------------------------------------------->
|
||||
|
||||
$scope.stepsModel = [];
|
||||
$scope.imageUpload = function (event) {
|
||||
var files = event.target.files; //FileList object
|
||||
|
||||
for (var i = 0; i < files.length; i++) {
|
||||
var file = files[i];
|
||||
var reader = new FileReader();
|
||||
reader.onload = $scope.imageIsLoaded;
|
||||
reader.readAsDataURL(file);
|
||||
}
|
||||
}
|
||||
|
||||
$scope.imageIsLoaded = function (e) {
|
||||
$scope.$apply(function () {
|
||||
// $scope.stepsModel.push(e.target.result);
|
||||
$scope.stepsModel[0] = e.target.result;
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
//an array of files selected
|
||||
$scope.filesimage = [];
|
||||
|
||||
//listen for the file selected event
|
||||
$scope.$on("fileSelected", function (event, args) {
|
||||
$scope.$apply(function () {
|
||||
//add the file object to the scope's files collection
|
||||
$scope.filesimage[0] = args.file;
|
||||
|
||||
|
||||
});
|
||||
});
|
||||
|
||||
|
||||
// reset image
|
||||
$scope.resetImage = function () {
|
||||
$scope.filesimage.length = 0;
|
||||
$scope.filesimage[0]='';
|
||||
$scope.stepsModel.length = 0;
|
||||
}
|
||||
|
||||
|
||||
//------------------image functions over ---------->
|
||||
|
||||
$scope.setEditId = function (id) {
|
||||
// alert(id);
|
||||
$scope.editId = id;
|
||||
}
|
||||
|
||||
$scope.cancel = function () {
|
||||
$scope.getUniversityList();
|
||||
$scope.editId = -1;
|
||||
}
|
||||
|
||||
$scope.updateUniversityDetails = function (form, p) {
|
||||
//alert()
|
||||
var firstError = null;
|
||||
if (form.$invalid) {
|
||||
var field = null, firstError = null;
|
||||
for (field in form) {
|
||||
if (field[0] != '$') {
|
||||
if (firstError === null && !form[field].$valid) {
|
||||
firstError = form[field].$name;
|
||||
}
|
||||
if (form[field].$pristine) {
|
||||
form[field].$dirty = true;
|
||||
}
|
||||
}
|
||||
}
|
||||
angular.element('.ng-invalid[name=' + firstError + ']').focus();
|
||||
// swal("The form cannot be submitted because it contains validation errors!", "Errors are marked with a red, dashed border!", "error");
|
||||
} else {
|
||||
p.IsActive = p.IsActive === true ? 1 : 0;
|
||||
var idProof = $scope.filesimage[0];
|
||||
|
||||
|
||||
if(idProof === undefined)
|
||||
{
|
||||
|
||||
//alert('if')
|
||||
// alert(JSON.stringify(p))
|
||||
var req = {
|
||||
method: 'POST',
|
||||
url: apiPoint.url + 'updateUniversityDetail/',
|
||||
headers: {
|
||||
'Content-Type': 'application/json'
|
||||
},
|
||||
data: {
|
||||
data: JSON.stringify(p),
|
||||
updatedBy: localDetails.localUserID,
|
||||
branchCode: localDetails.localBranchID
|
||||
}
|
||||
};
|
||||
$http(req).then(function (response) {
|
||||
if (response.data.updateUniversityStatus = true) {
|
||||
swal(" ", "Updated successfully.", "success");
|
||||
$scope.getUniversityList();
|
||||
$scope.editId = -1;
|
||||
} else {
|
||||
// $scope.ldloading1[loading.replace('-', '_')] = false;
|
||||
swal(" ", "Something went wrong, please try again.", "error");
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
else
|
||||
{
|
||||
|
||||
//alert('else')
|
||||
var formData = new FormData();
|
||||
var idProof = $scope.filesimage[0];
|
||||
//alert(idProof)
|
||||
|
||||
formData.append("data", JSON.stringify(p));
|
||||
formData.append("updatedBy", localDetails.localUserID);
|
||||
formData.append("branchCode", localDetails.localBranchID);
|
||||
formData.append('idProof', idProof);
|
||||
|
||||
$http.post(apiPoint.url + 'updateUniversityDetail/', formData, {
|
||||
transformRequest: angular.identity,
|
||||
headers: { 'Content-Type': undefined, 'Process-Data': false },
|
||||
}).success(function (data) {
|
||||
|
||||
if (data.updateUniversityStatus == true) {
|
||||
swal("Success!", data.message, "success");
|
||||
$state.go($state.current, {}, { reload: true });
|
||||
} else {
|
||||
// $scope.ldloading1[loading.replace('-', '_')] = false;
|
||||
swal("Failed!", data.message, "error");
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// add university
|
||||
$scope.universityForm = {
|
||||
submit: function (form, myModel) {
|
||||
var firstError = null;
|
||||
if (form.$invalid) {
|
||||
var field = null, firstError = null;
|
||||
for (field in form) {
|
||||
if (field[0] != '$') {
|
||||
if (firstError === null && !form[field].$valid) {
|
||||
firstError = form[field].$name;
|
||||
}
|
||||
if (form[field].$pristine) {
|
||||
form[field].$dirty = true;
|
||||
}
|
||||
}
|
||||
}
|
||||
angular.element('.ng-invalid[name=' + firstError + ']').focus();
|
||||
// swal("The form cannot be submitted because it contains validation errors!", "Errors are marked with a red, dashed border!", "error");
|
||||
} else {
|
||||
$scope.myModel.switchsetting = $scope.myModel.switchsetting === true ? 1 : 0;
|
||||
|
||||
var idProof = $scope.filesimage[0];
|
||||
var formData = new FormData();
|
||||
//var idProof = $scope.filesimage[0];
|
||||
|
||||
//alert(idProof);
|
||||
// var req = {
|
||||
// method: 'POST',
|
||||
// url: apiPoint.url + 'insertUniversity/',
|
||||
// headers: {
|
||||
// 'Content-Type': 'application/json'
|
||||
// },
|
||||
// data: {
|
||||
// data: $scope.myModel,
|
||||
// branchCode: localDetails.localBranchID,
|
||||
// createdBy: localDetails.localUserID,
|
||||
// }
|
||||
// };
|
||||
formData.append("data", JSON.stringify($scope.myModel));
|
||||
formData.append("branchCode", localDetails.localBranchID);
|
||||
formData.append("createdBy", localDetails.localUserID);
|
||||
formData.append('idProof', idProof);
|
||||
|
||||
|
||||
$http.post(apiPoint.url + 'insertUniversityfile/', formData, {
|
||||
transformRequest: angular.identity,
|
||||
headers: { 'Content-Type': undefined, 'Process-Data': false },
|
||||
}).success(function (data) {
|
||||
if (data.addUniv == true) {
|
||||
// swal("Success!", data.message, "success");
|
||||
// $state.go($state.current, {}, { reload: true });
|
||||
swal("Success!", data.message, "success");
|
||||
$state.go($state.current, {}, { reload: true });
|
||||
} else {
|
||||
// $scope.ldloading1[loading.replace('-', '_')] = false;
|
||||
swal("Failed!", data.message, "error");
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
|
||||
|
||||
// $http(req).then(function (response) {
|
||||
// if (response.data.addUniv == true) {
|
||||
// swal("", "University details added successfully.", "success");
|
||||
// $state.go($state.current, {}, { reload: true });
|
||||
// }
|
||||
// else if(response.data.addUniv == false){
|
||||
// swal("","This University Id is already exist!", "error");
|
||||
|
||||
// }
|
||||
// else {
|
||||
// // $scope.ldloading1[loading.replace('-', '_')] = false;
|
||||
// swal("","Something went wrong, please try again.", "error");
|
||||
// }
|
||||
// });
|
||||
}
|
||||
},
|
||||
reset: function (form) {
|
||||
|
||||
// $scope.myModel = angular.copy($scope.master);
|
||||
form.$setPristine(true);
|
||||
$scope.myModel = {
|
||||
'UniversityID': '',
|
||||
'UniversityName': '',
|
||||
'UniversityShortName': '',
|
||||
'MobileNumber': '',
|
||||
'EmailID': '',
|
||||
'Address': '',
|
||||
};
|
||||
}
|
||||
}
|
||||
|
||||
}]);
|
||||
|
||||
|
||||
|
||||
// file upload directive
|
||||
app.directive('fileUpload', function () {
|
||||
return {
|
||||
scope: true, //create a new scope
|
||||
link: function (scope, el, attrs) {
|
||||
el.bind('change', function (event) {
|
||||
var files = event.target.files;
|
||||
//iterate files since 'multiple' may be specified on the element
|
||||
for (var i = 0; i < files.length; i++) {
|
||||
//emit event upward
|
||||
scope.$emit("fileSelected", { file: files[i] });
|
||||
}
|
||||
});
|
||||
}
|
||||
};
|
||||
});
|
||||
@ -85,12 +85,12 @@
|
||||
<input type="submit" value="Submit" ladda="ldloading1.zoom_in" tabindex="9" class="btn btn-wide btn-success" data-style="zoom-in"/>
|
||||
|
||||
</div>-->
|
||||
<div class="col-md-2" style="padding-top: 2.3%;">
|
||||
<div class="col-md-2" >
|
||||
<div class="pull-right">
|
||||
<!--<button type="submit" ladda="ldloading1.zoom_in" tabindex="4" class="btn btn-wide btn-success" data-style="zoom-in"/>
|
||||
Submit
|
||||
</button>-->
|
||||
<button type="submit" ladda="ldloading.zoom_in" tabindex="4" class="btn btn-wide btn-success" data-style="zoom-in">
|
||||
<button style="margin-top:20px;" type="submit" ladda="ldloading.zoom_in" tabindex="4" class="btn btn-wide btn-success" data-style="zoom-in">
|
||||
Add
|
||||
</button>
|
||||
</div>
|
||||
|
||||
@ -36,9 +36,9 @@
|
||||
<span class="error text-small block" ng-if="Form.StatusName.$dirty && Form.StatusName.$error.required">Account Name is required</span>
|
||||
<span class="error text-small block" ng-if="Form.StatusName.$dirty && Form.StatusName.$error.pattern">Invalid Account Name </span>
|
||||
</div>
|
||||
<div class="col-md-2" style="padding-top: 2.3%;">
|
||||
<div class="col-md-2" >
|
||||
<div class="pull-right">
|
||||
<button type="submit" ladda="ldloading1.zoom_in" tabindex="2" class="btn btn-wide btn-success" data-style="zoom-in">
|
||||
<button style="margin-top:20px;" type="submit" ladda="ldloading1.zoom_in" tabindex="2" class="btn btn-wide btn-success" data-style="zoom-in">
|
||||
Add
|
||||
</button>
|
||||
</div>
|
||||
@ -68,7 +68,7 @@
|
||||
<span class="glyphicon sort-icon" ng-show="sortKey=='ListName'" ng-class="{'glyphicon-chevron-up':reverse,'glyphicon-chevron-down':!reverse}"> </span>
|
||||
</th>
|
||||
<th>Status</th>
|
||||
<th></th>
|
||||
<th>Action</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<!-- {{statusInfo}} -->
|
||||
|
||||
@ -68,7 +68,7 @@
|
||||
<th ng-click="sort('Active/De-Active')">Status
|
||||
<span class="glyphicon sort-icon" ng-show="sortKey=='Active/De-Active'" ng-class="{'glyphicon-chevron-up':reverse,'glyphicon-chevron-down':!reverse}"></span>
|
||||
</th>
|
||||
<th></th>
|
||||
<th>Action</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody dir-paginate="p in data|orderBy:sortKey:reverse|filter:search:strict|itemsPerPage:10">
|
||||
|
||||
@ -95,8 +95,7 @@
|
||||
<span class="glyphicon sort-icon" ng-show="sortKey=='LandlineNumber'" ng-class="{'glyphicon-chevron-up':reverse,'glyphicon-chevron-down':!reverse}"></span>
|
||||
</th>
|
||||
<th>Status</th>
|
||||
<th>
|
||||
</th>
|
||||
<th>Action</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody dir-paginate="p in data|orderBy:sortKey:reverse|filter:search:strict|itemsPerPage:10">
|
||||
|
||||
@ -65,9 +65,9 @@
|
||||
</div>
|
||||
|
||||
</div>-->
|
||||
<div class="col-md-2" style="padding-top: 2.3%;">
|
||||
<div class="col-md-2">
|
||||
<div class="pull-right">
|
||||
<button type="submit" ladda="ldloading1.zoom_in" tabindex="2" class="btn btn-wide btn-success" data-style="zoom-in">
|
||||
<button style="margin-top:20px;" type="submit" ladda="ldloading1.zoom_in" tabindex="2" class="btn btn-wide btn-success" data-style="zoom-in" >
|
||||
Add
|
||||
</button>
|
||||
<!-- <button type="submit" class="btn btn-success btn-o" tabindex="8">
|
||||
@ -115,7 +115,7 @@
|
||||
<span class="glyphicon sort-icon" ng-show="sortKey=='CertificateName'" ng-class="{'glyphicon-chevron-up':reverse,'glyphicon-chevron-down':!reverse}"> </span>
|
||||
</th>
|
||||
<th>Status</th>
|
||||
<th></th>
|
||||
<th>Action</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody dir-paginate="p in statusInfo|orderBy:sortKey:reverse|filter:search:strict|itemsPerPage:10">
|
||||
|
||||
@ -15,8 +15,44 @@
|
||||
<!-- end: DASHBOARD TITLE -->
|
||||
<!-- start: FEATURED BOX LINKS -->
|
||||
<div class="container-fluid container-fullw bg-white" ng-controller="dashboardCtrl">
|
||||
<!-- start student registration details-->
|
||||
<div ng-if="getLoginType!='R004'" ng-controller="OnotherCtrl" data-ng-init="init()">
|
||||
<div class="col-md-12">
|
||||
<div class="panel panel-white" id="panel4">
|
||||
<div class="panel-heading panel-white">
|
||||
<h4 class="panel-title text-blue">University Registration</h4>
|
||||
|
||||
</div>
|
||||
<div class="panel-body">
|
||||
<div ng-if="notEmptyRegistration==false">
|
||||
<center>
|
||||
<h5 class="text-dark">No university details!</h5>
|
||||
</center>
|
||||
</div>
|
||||
<div class="col-md-3" ng-if="notEmptyRegistration==true" ng-repeat="registration in registerdStudentDetails">
|
||||
<div class="panel panel-white" id="{{registration.UniversityID}}">
|
||||
<!--<div class="panel-heading panel-white">
|
||||
<h4 class="panel-title text-blue">{{registration.UniversityID}}</h4>
|
||||
|
||||
</div>-->
|
||||
<div class="panel-body">
|
||||
<label>{{registration.UniversityName | uppercase}}</label>
|
||||
<div>
|
||||
<label>No of Registration : <span>{{registration.StudentCounts}}</span></label>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!--end student registration-->
|
||||
<div class="row" data-ng-init="initCallTracking()">
|
||||
<div class="row">
|
||||
<div class="col-md-12">
|
||||
<div class="col-sm-6">
|
||||
<div class="container">
|
||||
<div class="row">
|
||||
@ -41,13 +77,13 @@
|
||||
<th> Name</th>
|
||||
<th>Mobile </th>
|
||||
<th>Activity</th>
|
||||
<th>Status</th>
|
||||
<th class="hidden-xs">Status</th>
|
||||
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody ng-repeat="today in todayFolloupDetails">
|
||||
<tbody>
|
||||
|
||||
<tr>
|
||||
<tr ng-repeat="today in todayFolloupDetails">
|
||||
<td>{{today.TrackingID}}</td>
|
||||
<td><a tooltip="View Student" class="text-dark" ng-click="open(today);">{{today.LeadName}}</a></td>
|
||||
<td><a tooltip="View Student" class="text-dark" ng-click="open(today);">{{today.MobileNumber}}</a></td>
|
||||
@ -88,13 +124,13 @@
|
||||
<th>Mobile </th>
|
||||
<th>Activity</th>
|
||||
<th>Followup </th>
|
||||
<th>Status</th>
|
||||
<th class="hidden-xs">Status</th>
|
||||
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody ng-repeat="lead in leadDetails">
|
||||
<tbody>
|
||||
|
||||
<tr>
|
||||
<tr ng-repeat="lead in leadDetails">
|
||||
<td>{{lead.TrackingID}}</td>
|
||||
<td><a tooltip="View Student" class="text-dark" ng-click="open(lead);">{{lead.LeadName}}</a></td>
|
||||
<td><a tooltip="View Student" class="text-dark" ng-click="open(lead);">{{lead.MobileNumber}}</a></td>
|
||||
@ -135,13 +171,13 @@
|
||||
<th>Mobile </th>
|
||||
<th>Activity</th>
|
||||
<th>Followup </th>
|
||||
<th>Status</th>
|
||||
<th class="hidden-xs">Status</th>
|
||||
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody ng-repeat="pending in pendingFolloupDetails">
|
||||
<tbody>
|
||||
|
||||
<tr>
|
||||
<tr ng-repeat="pending in pendingFolloupDetails">
|
||||
<td>{{pending.TrackingID}}</td>
|
||||
<td><a tooltip="View Student" class="text-dark" ng-click="open(pending);">{{pending.LeadName}}</a></td>
|
||||
<td><a tooltip="View Student" class="text-dark" ng-click="open(pending);">{{pending.MobileNumber}}</a></td>
|
||||
@ -158,51 +194,9 @@
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="row">
|
||||
<!-- <div class="col-sm-6">
|
||||
<div class="panel panel-white" id="panel3">
|
||||
<div class="panel-heading panel-white">
|
||||
<h4 class="panel-title text-purple"> Leads Created Today :{{leadDetails.length}}</h4>
|
||||
<ct-paneltool class="panel-tools" tool-refresh="load1" ng-click="initCallTracking()"></ct-paneltool>
|
||||
</div>
|
||||
<div class="panel-body">
|
||||
<div ng-if="emptyDataLead==true">
|
||||
<center>
|
||||
<h5 class="text-dark">No Lead Created By Today!</h5>
|
||||
</center>
|
||||
</div>
|
||||
<div class="panel-scroll height-180" perfect-scrollbar wheel-propagation="false" suppress-scroll-x="true" ng-if="emptyDataLead==false">
|
||||
<table class="table table-hover" ng-controller="studentModalDemoCtrl">
|
||||
<thead>
|
||||
<tr>
|
||||
<th> ID</th>
|
||||
<th> Name</th>
|
||||
<th>Mobile </th>
|
||||
<th>Activity</th>
|
||||
<th>Followup </th>
|
||||
<th>Status</th>
|
||||
<!--<div class="row">
|
||||
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody ng-repeat="lead in leadDetails">
|
||||
|
||||
<tr>
|
||||
<td>{{lead.TrackingID}}</td>
|
||||
<td><a tooltip="View Student" class="text-dark" ng-click="open(lead);">{{lead.LeadName}}</a></td>
|
||||
<td><a tooltip="View Student" class="text-dark" ng-click="open(lead);">{{lead.MobileNumber}}</a></td>
|
||||
<td>{{lead.ActivityName}}</td>
|
||||
<td>{{lead.FollowupOn}}</td>
|
||||
<td class="hidden-xs" ng-if="lead.statusName=='CLOSE'"><span class="label label-sm label-info">{{lead.statusName}}</span></td>
|
||||
<td class="hidden-xs" ng-if="lead.statusName!='CLOSE'"><span class="label label-sm label-info">{{lead.statusName}}</span></td>
|
||||
</tr>
|
||||
</tbody>
|
||||
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div> -->
|
||||
<!-- <div class="col-sm-6">
|
||||
<div class="col-sm-6">
|
||||
<div class="panel panel-white no-radius">
|
||||
<div class="panel-heading border-bottom">
|
||||
<h4 class="panel-title">New Users</h4>
|
||||
@ -218,8 +212,9 @@
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div> -->
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>-->
|
||||
</div>
|
||||
<div>
|
||||
</div>
|
||||
|
||||
@ -25,7 +25,7 @@
|
||||
<div class="row">
|
||||
<div class="col-sm-8">
|
||||
|
||||
<h1 class="mainTitle" translate="Batch Shedule">{{ mainTitle }}</h1>
|
||||
<h1 class="mainTitle" translate="Batch Schedule">{{ mainTitle }}</h1>
|
||||
|
||||
<span class="mainDescription">Allocate Batch schedule </span>
|
||||
|
||||
|
||||
@ -31,7 +31,10 @@
|
||||
|
||||
<div id="student_list_AM">
|
||||
<table width="100%" border="1" id = "attendanceTableAM" style="background-color:#fff;" ng-if="studentInfoAM_Length != 0">
|
||||
<thead><tr> <th>SNO</th> <th>STUDENT NAME</th> <th>COURSE</th> <th>SEM/YEAR</th> <th>ENROLLMENT NO</th> <th>SUBJECT CODE</th> <th>SUBJECT NAME</th><th>BOOKLET NO</th> <th>STUDENT SUGNATURE</th> </tr></thead>
|
||||
|
||||
|
||||
<thead><tr> <th>SNO</th> <th>STUDENT NAME</th> <th>COURSE</th> <th>SEM/YEAR</th> <th>ENROLLMENT NO</th> <th>SUBJECT CODE</th> <th>SUBJECT NAME</th><th>BOOKLET NO</th> <th>STU SIGN</th> </tr></thead>
|
||||
|
||||
<tbody>
|
||||
<tr ng-repeat="student in dataForExamAttendanceAM" >
|
||||
<td>{{($index+1)}}</td> <td>{{student.Firstname}} {{student.Lastname}} </td><td>{{student.CourseName}}</td><td>{{student.Sem_Year}}</td><td>{{student.EnrollmentID}}</td><td>{{student.SubjectCode}}</td><td>{{student.SubjectName}}</td><td></td><td></td>
|
||||
@ -43,7 +46,7 @@
|
||||
|
||||
<div id="student_list_PM">
|
||||
<table width="100%" border="1" id = "attendanceTablePM" style="background-color:#fff;" ng-if="studentInfoPM_Length != 0">
|
||||
<thead><tr> <th>SNO</th> <th>STUDENT NAME</th> <th>COURSE</th> <th>SEM/YEAR</th> <th>ENROLLMENT NO</th> <th>SUBJECT CODE</th> <th>SUBJECT NAME</th><th>BOOKLET NO</th> <th>STUDENT SUGNATURE</th> </tr></thead>
|
||||
<thead><tr> <th>SNO</th> <th>STUDENT NAME</th> <th>COURSE</th> <th>SEM/YEAR</th> <th>ENROLLMENT NO</th> <th>SUBJECT CODE</th> <th>SUBJECT NAME</th><th>BOOKLET NO</th> <th>STU SIGN</th> </tr></thead>
|
||||
<tbody>
|
||||
<tr ng-repeat="student in dataForExamAttendancePM" >
|
||||
<td>{{($index+1)}}</td> <td>{{student.Firstname}} {{student.Lastname}} </td><td>{{student.CourseName}}</td><td>{{student.Sem_Year}}</td><td>{{student.EnrollmentID}}</td><td>{{student.SubjectCode}}</td><td>{{student.SubjectName}}</td><td></td><td></td>
|
||||
|
||||
@ -27,11 +27,11 @@
|
||||
|
||||
<h1 class="mainTitle" translate="Generate Hallticket">{{ mainTitle }}</h1>
|
||||
|
||||
<span class="mainDescription">Generate Halltickets for Student </span>
|
||||
<span class="mainDescription">Generate Halltickets For Student </span>
|
||||
|
||||
</div>
|
||||
<div ncy-breadcrumb></div>
|
||||
</div>
|
||||
<div ncy-breadcrumb></div>
|
||||
</div>
|
||||
</section>
|
||||
<!-- end: PAGE TITLE -->
|
||||
<!-- start: LIST GROUP -->
|
||||
@ -87,15 +87,13 @@
|
||||
|
||||
<div class="col-md-2 form-group">
|
||||
|
||||
<br>
|
||||
<br>
|
||||
<button type="button" ladda="ldloading1.zoom_in" tabindex="5" class="btn btn-wide btn-info" data-style="zoom-in" ng-click="getStudentDetails(Form,myModel);">GET STUDENTS</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-md-12 ">
|
||||
|
||||
|
||||
</div>
|
||||
<div class="row">
|
||||
|
||||
<div class="col-md-5 form-group">
|
||||
<div class="col-md-3 form-group">
|
||||
|
||||
<label>
|
||||
Center Name
|
||||
|
||||
@ -411,6 +411,11 @@
|
||||
</div>
|
||||
</a>
|
||||
<ul class="sub-menu">
|
||||
<li ui-sref-active="active">
|
||||
<a ui-sref="app.reports.universityfileupload" ng-click="checkSuperAdmin()">
|
||||
<span class="title" translate="sidebar.nav.report.unidataupload">University Data Upload</span>
|
||||
</a>
|
||||
</li>
|
||||
<li ui-sref-active="active">
|
||||
<a ui-sref="app.reports.studymaterial" ng-click="checkSuperAdmin()">
|
||||
<span class="title" translate="sidebar.nav.report.studmatstatus">Study Material Status</span>
|
||||
@ -875,6 +880,11 @@
|
||||
</div>
|
||||
</a>
|
||||
<ul class="sub-menu">
|
||||
<li ui-sref-active="active">
|
||||
<a ui-sref="app.reports.universityfileupload" ng-click="checkAdmin()">
|
||||
<span class="title" translate="sidebar.nav.report.unidataupload">University Data Upload</span>
|
||||
</a>
|
||||
</li>
|
||||
<li ui-sref-active="active">
|
||||
<a ui-sref="app.reports.studymaterial" ng-click="checkAdmin()">
|
||||
<span class="title" translate="sidebar.nav.report.studmatstatus">Study Material Status</span>
|
||||
|
||||
238
Apollo/assets/views/report_universityfileupload.html
Normal file
@ -0,0 +1,238 @@
|
||||
<!-- start: UNIVERSITY TITLE -->
|
||||
<section id="page-title">
|
||||
<div class="row">
|
||||
<div class="col-sm-8">
|
||||
<h1 class="mainTitle" translate="University">{{ mainTitle }}</h1>
|
||||
|
||||
<span class="mainDescription">View/Add University Details. </span>
|
||||
|
||||
</div>
|
||||
<div ncy-breadcrumb></div>
|
||||
</div>
|
||||
</section>
|
||||
<!-- end: UNIVERSITY TITLE -->
|
||||
<!-- start: LIST GROUP -->
|
||||
<div class="container-fluid container-fullw bg-white">
|
||||
<div class="row" ng-controller="report_university-file-uploadCtrl.js" data-ng-init="init()">
|
||||
<tabset class="tabbable">
|
||||
<tab heading="View University" id="universityDetails">
|
||||
<div class="container-fluid container-fullw">
|
||||
<div class="row">
|
||||
<!---->
|
||||
<div class="col-md-12" ng-if="loader == true" align="center">
|
||||
<spinner name="html5spinner"> <div class="overlay"></div> <div class="spinner"> <div class="double-bounce1"></div> <div class="double-bounce2"></div> </div> <div class="please-wait">Please Wait...</div>
|
||||
</spinner>
|
||||
</div>
|
||||
|
||||
<div class="col-md-12" ng-if="emptyUniversity == false" style="min-height: 281px;">
|
||||
<p style="color: red;" align="center"><strong><h3 class="text-center">No
|
||||
records found... </h3></strong></p>
|
||||
</div>
|
||||
|
||||
<div class="col-md-12" ng-if="emptyUniversity == true">
|
||||
<div class="row">
|
||||
<div class="col-md-3">
|
||||
<script>
|
||||
$(function () {
|
||||
$("#search").focus();
|
||||
});
|
||||
</script>
|
||||
<input class="form-control" type="text" ng-model="search" id="search" autofocus tabindex="1" placeholder="Search" /><br><br>
|
||||
</div>
|
||||
</div>
|
||||
<div class="table-responsive">
|
||||
<table class="table table-hover">
|
||||
<thead>
|
||||
<tr>
|
||||
<th ng-click="sort('UniversityID')">University ID
|
||||
<span class="glyphicon sort-icon" ng-show="sortKey=='UniversityID'" ng-class="{'glyphicon-chevron-up':reverse,'glyphicon-chevron-down':!reverse}"></span>
|
||||
</th>
|
||||
<th ng-click="sort('UniversityShortName')">University Short Name
|
||||
<span class="glyphicon sort-icon" ng-show="sortKey=='UniversityShortName'" ng-class="{'glyphicon-chevron-up':reverse,'glyphicon-chevron-down':!reverse}"></span>
|
||||
</th>
|
||||
<th ng-click="sort('UniversityName')">University Name
|
||||
<span class="glyphicon sort-icon" ng-show="sortKey=='UniversityName'" ng-class="{'glyphicon-chevron-up':reverse,'glyphicon-chevron-down':!reverse}"></span>
|
||||
</th>
|
||||
<th ng-click="sort('EmailID')">Email ID
|
||||
<span class="glyphicon sort-icon" ng-show="sortKey=='EmailID'" ng-class="{'glyphicon-chevron-up':reverse,'glyphicon-chevron-down':!reverse}"></span>
|
||||
</th>
|
||||
<th>Status</th>
|
||||
<th style="text-align: center;"> Details
|
||||
</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody dir-paginate="p in univ|orderBy:sortKey:reverse|filter:search:strict|itemsPerPage:10">
|
||||
<tr>
|
||||
<td>{{p.UniversityID}}</td>
|
||||
<td>{{p.UniversityShortName}}</td>
|
||||
<td>{{p.UniversityName}}</td>
|
||||
<td>{{p.EmailID}}</td>
|
||||
<td><span ng-if="p.IsActive == 1"> Active </span><span ng-if="p.IsActive == 0">In-Active</span></td>
|
||||
<td style="text-align: center;">
|
||||
<input type=button class="btn btn-info btn-xs" ladda="ldloading1.zoom_in" id="editRowBtn{{p.UniversityID}}" value="Modify"
|
||||
ng-click="setEditId(p.UniversityID);">
|
||||
</td>
|
||||
</tr>
|
||||
<tr ng-show="editId === p.UniversityID" ng-if="editId === p.UniversityID">
|
||||
<td colspan="6" ng-include src="'assets/views/editUniversityDetails.html'"></td>
|
||||
</tr>
|
||||
</tbody>
|
||||
|
||||
</table>
|
||||
<dir-pagination-controls max-size="10" direction-links="true" boundary-links="true">
|
||||
</dir-pagination-controls>
|
||||
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</tab>
|
||||
<script>
|
||||
$('#addbranch').click(function () {
|
||||
$('#branchcode').focus();
|
||||
});
|
||||
</script>
|
||||
<style>
|
||||
.sort-icon {
|
||||
font-size: 9px;
|
||||
margin-left: 5px;
|
||||
}
|
||||
|
||||
th {
|
||||
cursor: pointer;
|
||||
}
|
||||
</style>
|
||||
|
||||
|
||||
<tab heading="Add University" id="adduniversity">
|
||||
<div>
|
||||
<form name="Form" id="form" novalidate ng-submit="universityForm.submit(Form, myModel)" method="post">
|
||||
<div class="row">
|
||||
<div class="col-md-12">
|
||||
<fieldset>
|
||||
<legend>
|
||||
University Details
|
||||
</legend>
|
||||
|
||||
<div class="row">
|
||||
|
||||
|
||||
<div class="col-md-4 form-group" ng-class="{'has-error':Form.UniversityName.$dirty && Form.UniversityName.$invalid, 'has-success':Form.UniversityName.$valid}">
|
||||
<label>
|
||||
University Name <span class="symbol required"></span>
|
||||
</label>
|
||||
|
||||
<input type="text" placeholder="University Name" tabindex="2" class="form-control" name="UniversityName" ng-model="myModel.UniversityName"
|
||||
required/>
|
||||
<span class="error text-small block" ng-if="Form.UniversityName.$dirty && Form.UniversityName.$invalid">University Name is required </span>
|
||||
</div>
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
|
||||
<div class="col-md-3">
|
||||
<form name="Form" id="form1" novalidate ng-submit="form.submit(Form,myModel)" method="post">
|
||||
<div class="file-upload">
|
||||
<div class="row">
|
||||
|
||||
<div class="col-md-12">
|
||||
|
||||
|
||||
<div class="form-group">
|
||||
<div class="user-image">
|
||||
<h5>University Logo</h5>
|
||||
<div class=" margin-bottom-5">
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div>
|
||||
<div ng-repeat="step in stepsModel">
|
||||
|
||||
<img class="thumb" ng-src="{{step}}" />
|
||||
<div class="col-md-12">
|
||||
<div class="pull-right">
|
||||
<button class="btn btn-success btn-o btn-sm margin-right-15" type="button" ng-click="resetImage()">Reset
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<input type="file" accept="image/*" file-upload onchange="angular.element(this).scope().imageUpload(event)" />
|
||||
<style>
|
||||
.thumb {
|
||||
width: 130px;
|
||||
height: 140px;
|
||||
margin: 18px;
|
||||
float: left;
|
||||
}
|
||||
|
||||
.uploader {
|
||||
clear: both;
|
||||
}
|
||||
</style>
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<div class="row">
|
||||
<div class="col-md-4">
|
||||
<label>
|
||||
Active/De-Active
|
||||
</label>
|
||||
|
||||
<div ng-switch="myModel.switchsetting">
|
||||
<div ng-switch-when="true">
|
||||
<switch ng-model="myModel.switchsetting" ng-init="myModel.switchsetting = true" class="green"></switch>
|
||||
</div>
|
||||
<div ng-switch-when="false">
|
||||
<switch ng-model="myModel.switchsetting" ng-init="myModel.switchsetting = false" class="green"></switch>
|
||||
</div>
|
||||
<div ng-switch-default>
|
||||
<switch ng-model="myModel.switchsetting" ng-init="myModel.switchsetting = true" class="green"></switch>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col-md-12">
|
||||
<div class="pull-right">
|
||||
<button type="submit" tabindex="21" tabindex="7" ladda="ldloading1.zoom_in" class="btn btn-wide btn-success" data-style="zoom-in">
|
||||
Add
|
||||
</button>
|
||||
<button type="reset" tabindex="22" class="btn btn-warning btn-wide" tabindex="8" ng-click="universityForm.reset(Form)">
|
||||
Reset
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</fieldset>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
</tab>
|
||||
</tabset>
|
||||
</div>
|
||||
</div>
|
||||
<!-- end: LIST GROUP -->
|
||||
@ -36,9 +36,9 @@
|
||||
<span class="error text-small block" ng-if="Form.StatusName.$dirty && Form.StatusName.$error.required">Status name is required</span>
|
||||
<span class="error text-small block" ng-if="Form.StatusName.$dirty && Form.StatusName.$error.pattern">Invalid Status name </span>
|
||||
</div>
|
||||
<div class="col-md-2" style="padding-top: 2.3%;">
|
||||
<div class="col-md-2" >
|
||||
<div class="pull-right">
|
||||
<button type="submit" ladda="ldloading1.zoom_in" tabindex="2" class="btn btn-wide btn-success" data-style="zoom-in">
|
||||
<button style="margin-top:20px;" type="submit" ladda="ldloading1.zoom_in" tabindex="2" class="btn btn-wide btn-success" data-style="zoom-in">
|
||||
Add
|
||||
</button>
|
||||
</div>
|
||||
@ -68,7 +68,7 @@
|
||||
<span class="glyphicon sort-icon" ng-show="sortKey=='ListName'" ng-class="{'glyphicon-chevron-up':reverse,'glyphicon-chevron-down':!reverse}"> </span>
|
||||
</th>
|
||||
<th>Status</th>
|
||||
<th></th>
|
||||
<th>Action</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody dir-paginate="p in statusInfo|orderBy:sortKey:reverse|filter:search:strict|itemsPerPage:10">
|
||||
|
||||
@ -210,9 +210,10 @@
|
||||
<td>{{p.UniversityName}}</td>
|
||||
<td>{{p.CourseName}}</td>
|
||||
<td><span ng-if="p.IsActive == true" style="text-transform: uppercase; text-shadow: 1px 1px #166307; color: #2be209 ">ACTIVE</span>
|
||||
<span tooltip="{{p.DeactiveComments}}" ng-if="p.IsActive == false" style="text-transform: uppercase; text-shadow: 1px 1px rgb(167, 88, 15); color: rgba(236, 24, 24, 0.98823529);">DEACTIVE</span></td>
|
||||
<span tooltip="{{p.DeactiveComments}}" ng-if="p.IsActive == false" style="text-transform: uppercase; text-shadow: 1px 1px rgb(167, 88, 15); color: rgba(236, 24, 24, 0.98823529);">DEACTIVE
|
||||
</span></td>
|
||||
<td>
|
||||
<div id="containersPara">{{p.Comments}}</div>
|
||||
{{p.Comments}}
|
||||
</td>
|
||||
<td style="text-align: center;">
|
||||
<!--<input type=button class="btn btn-info btn-xs" ladda="ldloading1.zoom_in" id="editRowBtn{{p.StudentID}}" value="Personal Details"
|
||||
|
||||
@ -71,7 +71,7 @@
|
||||
|
||||
<th>Status</th>
|
||||
|
||||
<th></th>
|
||||
<th>Action</th>
|
||||
|
||||
</tr>
|
||||
</thead>
|
||||
@ -187,9 +187,9 @@
|
||||
|
||||
</div>
|
||||
|
||||
|
||||
</br>
|
||||
<div class="row">
|
||||
<div class="col-md-12">
|
||||
<div class="col-md-11">
|
||||
<div class="pull-right">
|
||||
<button type="submit" ng-disabled="disableButton" tabindex="3" class="btn btn-wide btn-success"
|
||||
data-style="zoom-in"> Submit </button>
|
||||
|
||||
BIN
Apollo/images/university/Dri_4RrL5J6loCa0.jpeg
Normal file
|
After Width: | Height: | Size: 14 KiB |
BIN
Apollo/images/university/Dri_52lVFNuxP0ej.jpeg
Normal file
BIN
Apollo/images/university/Dri_9EKICn5ra3QW.jpeg
Normal file
BIN
Apollo/images/university/Dri_DKyJlY6UAkqp.jpeg
Normal file
BIN
Apollo/images/university/Dri_DVenzmR0Bu39.jpeg
Normal file
BIN
Apollo/images/university/Dri_Fj7Z3spXUlY1.jpeg
Normal file
|
After Width: | Height: | Size: 14 KiB |
BIN
Apollo/images/university/Dri_GOJ5UlXys1MR.jpeg
Normal file
BIN
Apollo/images/university/Dri_IQ5n3uW7EXPb.jpeg
Normal file
BIN
Apollo/images/university/Dri_TE1jqOPDa3bc.jpeg
Normal file
|
After Width: | Height: | Size: 14 KiB |
BIN
Apollo/images/university/Dri_VvBHCXrgP2ui.jpeg
Normal file
|
After Width: | Height: | Size: 14 KiB |
BIN
Apollo/images/university/Dri_WrsjdxESP8Jl.jpeg
Normal file
BIN
Apollo/images/university/Dri_bqG7hiQU3ntx.jpeg
Normal file
BIN
Apollo/images/university/Dri_eWixpUOwF7hE.jpeg
Normal file
|
After Width: | Height: | Size: 14 KiB |
BIN
Apollo/images/university/Dri_gjPxOA7Y8Rs0.jpeg
Normal file
|
After Width: | Height: | Size: 14 KiB |
BIN
Apollo/images/university/Dri_hOVMvRE3Y2ay.jpeg
Normal file
BIN
Apollo/images/university/Dri_kOKnqvAupcBP.jpeg
Normal file
|
After Width: | Height: | Size: 14 KiB |