AndroidCourse
This commit is contained in:
parent
2d5ee939ec
commit
b9a1ac2de1
11
app/AndroidFileresult.php
Normal file
11
app/AndroidFileresult.php
Normal file
|
|
@ -0,0 +1,11 @@
|
||||||
|
<?php
|
||||||
|
|
||||||
|
namespace App;
|
||||||
|
|
||||||
|
use Illuminate\Database\Eloquent\Model;
|
||||||
|
|
||||||
|
class AndroidFileResult extends Model
|
||||||
|
{
|
||||||
|
protected $table='file_results';
|
||||||
|
public $primaryKey='id';
|
||||||
|
}
|
||||||
12
app/AndroidStudentSubmit.php
Normal file
12
app/AndroidStudentSubmit.php
Normal file
|
|
@ -0,0 +1,12 @@
|
||||||
|
<?php
|
||||||
|
|
||||||
|
namespace App;
|
||||||
|
|
||||||
|
use Illuminate\Database\Eloquent\Model;
|
||||||
|
|
||||||
|
class AndroidStudentSubmit extends Model
|
||||||
|
{
|
||||||
|
protected $table='student_submits';
|
||||||
|
|
||||||
|
public $primaryKey='id';
|
||||||
|
}
|
||||||
25
app/AndroidTask.php
Normal file
25
app/AndroidTask.php
Normal file
|
|
@ -0,0 +1,25 @@
|
||||||
|
<?php
|
||||||
|
|
||||||
|
namespace App;
|
||||||
|
|
||||||
|
use Illuminate\Database\Eloquent\Model;
|
||||||
|
|
||||||
|
class AndroidTask extends Model
|
||||||
|
{
|
||||||
|
//
|
||||||
|
protected $table='tasks';
|
||||||
|
|
||||||
|
public $primaryKey='id';
|
||||||
|
|
||||||
|
public function topic() {
|
||||||
|
return $this->belongsTo(App\AndroidTopic::class);
|
||||||
|
}
|
||||||
|
|
||||||
|
public function getTopic($id) {
|
||||||
|
return \App\AndroidTopic::find($id)->name;
|
||||||
|
}
|
||||||
|
|
||||||
|
public function getListTopic() {
|
||||||
|
return \App\AndroidTopic::pluck('name', 'id');
|
||||||
|
}
|
||||||
|
}
|
||||||
11
app/AndroidTaskResult.php
Normal file
11
app/AndroidTaskResult.php
Normal file
|
|
@ -0,0 +1,11 @@
|
||||||
|
<?php
|
||||||
|
|
||||||
|
namespace App;
|
||||||
|
|
||||||
|
use Illuminate\Database\Eloquent\Model;
|
||||||
|
|
||||||
|
class AndroidTaskResult extends Model
|
||||||
|
{
|
||||||
|
protected $table='task_results';
|
||||||
|
public $primaryKey='id';
|
||||||
|
}
|
||||||
10
app/AndroidTestFiles.php
Normal file
10
app/AndroidTestFiles.php
Normal file
|
|
@ -0,0 +1,10 @@
|
||||||
|
<?php
|
||||||
|
|
||||||
|
namespace App;
|
||||||
|
|
||||||
|
use Illuminate\Database\Eloquent\Model;
|
||||||
|
|
||||||
|
class AndroidTestFiles extends Model
|
||||||
|
{
|
||||||
|
//
|
||||||
|
}
|
||||||
22
app/AndroidTopic.php
Normal file
22
app/AndroidTopic.php
Normal file
|
|
@ -0,0 +1,22 @@
|
||||||
|
<?php
|
||||||
|
|
||||||
|
namespace App;
|
||||||
|
|
||||||
|
use Illuminate\Database\Eloquent\Model;
|
||||||
|
|
||||||
|
class AndroidTopic extends Model
|
||||||
|
{
|
||||||
|
//
|
||||||
|
protected $table='topics';
|
||||||
|
public function tasks() {
|
||||||
|
return $this->hasMany('App\AndroidTask');
|
||||||
|
}
|
||||||
|
|
||||||
|
public function topic_files() {
|
||||||
|
return $this->hasMany('App\AndroidTopicFiles');
|
||||||
|
}
|
||||||
|
|
||||||
|
public function test_files() {
|
||||||
|
return $this->hasMany('App\AndroidTestFiles');
|
||||||
|
}
|
||||||
|
}
|
||||||
15
app/AndroidTopicFiles.php
Normal file
15
app/AndroidTopicFiles.php
Normal file
|
|
@ -0,0 +1,15 @@
|
||||||
|
<?php
|
||||||
|
|
||||||
|
namespace App;
|
||||||
|
|
||||||
|
use Illuminate\Database\Eloquent\Model;
|
||||||
|
|
||||||
|
class AndroidTopicFiles extends Model
|
||||||
|
{
|
||||||
|
//
|
||||||
|
protected $table='topic_files';
|
||||||
|
public $primaryKey='id';
|
||||||
|
public function topic() {
|
||||||
|
return $this->belongsTo(App\AndroidTopic::class);
|
||||||
|
}
|
||||||
|
}
|
||||||
52
app/AndroidUser.php
Normal file
52
app/AndroidUser.php
Normal file
|
|
@ -0,0 +1,52 @@
|
||||||
|
<?php
|
||||||
|
|
||||||
|
namespace App;
|
||||||
|
|
||||||
|
use Illuminate\Contracts\Auth\MustVerifyEmail;
|
||||||
|
use Illuminate\Foundation\Auth\User as Authenticatable;
|
||||||
|
use Illuminate\Notifications\Notifiable;
|
||||||
|
|
||||||
|
|
||||||
|
class AndroidUser extends Authenticatable
|
||||||
|
{
|
||||||
|
use Notifiable;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The attributes that are mass assignable.
|
||||||
|
*
|
||||||
|
* @var array
|
||||||
|
*/
|
||||||
|
protected $fillable = [
|
||||||
|
'name', 'roleid', 'email', 'password','uplink','status'
|
||||||
|
];
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The attributes that should be hidden for arrays.
|
||||||
|
*
|
||||||
|
* @var array
|
||||||
|
*/
|
||||||
|
protected $hidden = [
|
||||||
|
'password', 'remember_token',
|
||||||
|
];
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The attributes that should be cast to native types.
|
||||||
|
*
|
||||||
|
* @var array
|
||||||
|
*/
|
||||||
|
protected $casts = [
|
||||||
|
'email_verified_at' => 'datetime',
|
||||||
|
];
|
||||||
|
|
||||||
|
public function checkRoleId($roleid) {
|
||||||
|
if ($roleid=='student') {
|
||||||
|
return Redirect::to('student/Androidcourse/home');
|
||||||
|
} elseif ($roleid=='teacher') {
|
||||||
|
return Redirect::to('teacher/home');
|
||||||
|
} elseif ($roleid=='admin') {
|
||||||
|
return Redirect::to('admin/admin');
|
||||||
|
} else {
|
||||||
|
return Redirect::to('/home');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
249
app/Http/Controllers/AndroidController.php
Normal file
249
app/Http/Controllers/AndroidController.php
Normal file
|
|
@ -0,0 +1,249 @@
|
||||||
|
<?php
|
||||||
|
|
||||||
|
namespace App\Http\Controllers;
|
||||||
|
|
||||||
|
use Illuminate\Http\Request;
|
||||||
|
use Illuminate\Support\Facades\Validator;
|
||||||
|
use Illuminate\Support\Facades\Auth;
|
||||||
|
|
||||||
|
use Redirect;
|
||||||
|
use Session;
|
||||||
|
|
||||||
|
class AndroidController extends Controller
|
||||||
|
{
|
||||||
|
//
|
||||||
|
/**
|
||||||
|
* Display a listing of the resource.
|
||||||
|
*
|
||||||
|
* @return Response
|
||||||
|
*/
|
||||||
|
public function index(Request $request) {
|
||||||
|
if (Auth::user()->roleid=='student/androidcourse') {
|
||||||
|
$check=\App\User::find(Auth::user()->id);
|
||||||
|
if ($check->status!='active') return view('student/androidcourse/home')->with(['status'=>$check->status]);
|
||||||
|
}
|
||||||
|
$topiclist=\App\AndroidTopic::where('status','=','1')
|
||||||
|
->orderBy('name','asc')->get();
|
||||||
|
|
||||||
|
$items = \App\AndroidTopic::where('status','=','1')
|
||||||
|
->orderBy('status','desc')
|
||||||
|
->orderBy('name','asc')
|
||||||
|
->pluck('name', 'id');
|
||||||
|
|
||||||
|
$itemslearning = \App\AndroidTopic::where('status','=','1')
|
||||||
|
->orderBy('status','desc')
|
||||||
|
->orderBy('name','asc')
|
||||||
|
->where('level','=','1')
|
||||||
|
->pluck('name', 'id');
|
||||||
|
|
||||||
|
$filter = $request->input('topicList',$topiclist[0]['id']);
|
||||||
|
|
||||||
|
if ($filter=='0') {
|
||||||
|
$entities=\App\AndroidTask::all();
|
||||||
|
} else {
|
||||||
|
|
||||||
|
$entities = \App\AndroidTask::where('topic','=',$filter)
|
||||||
|
->select(
|
||||||
|
'tasks.id',
|
||||||
|
'tasks.taskno',
|
||||||
|
'tasks.desc',
|
||||||
|
'tasks.topic',
|
||||||
|
'topics.name'
|
||||||
|
)
|
||||||
|
->join(
|
||||||
|
'topics',
|
||||||
|
'topics.id','=','tasks.topic'
|
||||||
|
)
|
||||||
|
->orderBy('tasks.taskno','asc')
|
||||||
|
->get();
|
||||||
|
}
|
||||||
|
|
||||||
|
if (Auth::user()->roleid=='admin') {
|
||||||
|
return view('admin/tasks/index')
|
||||||
|
->with(compact('entities'))
|
||||||
|
->with(compact('items'))
|
||||||
|
->with(compact('filter'));
|
||||||
|
} else {
|
||||||
|
$topic = \App\AndroidTopic::where('topics.id','=',$filter)
|
||||||
|
->select(
|
||||||
|
'topics.id',
|
||||||
|
'topics.name',
|
||||||
|
'topics.desc',
|
||||||
|
'learning_files.guide',
|
||||||
|
'learning_files.testfile',
|
||||||
|
'learning_files.supplement',
|
||||||
|
'learning_files.other'
|
||||||
|
)
|
||||||
|
->leftJoin('learning_files', 'learning_files.topic', '=', 'topics.id')
|
||||||
|
->first();
|
||||||
|
return view('student/androidcourse/tasks/index')
|
||||||
|
->with(compact('entities'))
|
||||||
|
->with(compact('items'))
|
||||||
|
->with(compact('itemslearning'))
|
||||||
|
->with(compact('filter'))
|
||||||
|
->with(compact('topic'));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public function getTopic($id){
|
||||||
|
$items = \App\AndroidTopic::find($id);
|
||||||
|
|
||||||
|
return $items['name'];
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public function filterTask() {
|
||||||
|
$filters = \App\AndroidTopic::get();
|
||||||
|
$filter = \App\AndroidTopic::findOrFail(Input::get('filter_id'));
|
||||||
|
|
||||||
|
$data= \App\AndroidTask::with('topic')->where('topic', '=' , $filter->id )->latest()->get();
|
||||||
|
|
||||||
|
return View::make('admin.tasks.index',compact('filters'))->withProfiles($data)->with('title', 'filter');
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Show the form for creating a new resource.
|
||||||
|
*
|
||||||
|
* @return Response
|
||||||
|
*/
|
||||||
|
public function create()
|
||||||
|
{
|
||||||
|
//
|
||||||
|
$items = \App\AndroidTopic::pluck('name', 'id');
|
||||||
|
//echo "kljasd;lkasdl";
|
||||||
|
return view('admin/tasks/create')->with(compact('items'));
|
||||||
|
}
|
||||||
|
/**
|
||||||
|
* Store a newly created resource in storage.
|
||||||
|
*
|
||||||
|
* @return Response
|
||||||
|
*/
|
||||||
|
public function store(Request $request)
|
||||||
|
{
|
||||||
|
//echo "YAAANNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN";
|
||||||
|
//
|
||||||
|
$rules =[
|
||||||
|
'taskno'=>'required',
|
||||||
|
'desc'=>'required'
|
||||||
|
];
|
||||||
|
|
||||||
|
$msg=[
|
||||||
|
'taskno.required'=>'Task number must not empty',
|
||||||
|
'desc.required'=>'Description must not empty'
|
||||||
|
];
|
||||||
|
|
||||||
|
$validator=Validator::make($request->all(),$rules,$msg);
|
||||||
|
|
||||||
|
//jika data ada yang kosong
|
||||||
|
if ($validator->fails()) {
|
||||||
|
|
||||||
|
//refresh halaman
|
||||||
|
return Redirect::to('admin/tasks/create')
|
||||||
|
->withErrors($validator);
|
||||||
|
|
||||||
|
}else{
|
||||||
|
|
||||||
|
$entity=new \App\AndroidTask;
|
||||||
|
|
||||||
|
$entity->desc=$request->get('desc');
|
||||||
|
$entity->taskno=$request->get('taskno');
|
||||||
|
$entity->topic=$request->get('topic');
|
||||||
|
$entity->save();
|
||||||
|
|
||||||
|
Session::flash('message','A New Task Stored');
|
||||||
|
|
||||||
|
//return "Add new topic is success";
|
||||||
|
return Redirect::to('admin/tasks');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Display the specified resource.
|
||||||
|
*
|
||||||
|
* @param int $id
|
||||||
|
* @return Response
|
||||||
|
*/
|
||||||
|
public function show(Request $request, $id)
|
||||||
|
{
|
||||||
|
$entity = \App\AndroidTask::find($id);
|
||||||
|
$topic = \App\AndroidTopic::find($entity->topic);
|
||||||
|
$x=['data'=>$entity, 'topic'=>$topic];
|
||||||
|
|
||||||
|
if ($request->is('admin/*')) {
|
||||||
|
return view('admin/tasks/show')->with($x);
|
||||||
|
} else {
|
||||||
|
return view('student/androidcourse/tasks/show')->with($x);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Show the form for editing the specified resource.
|
||||||
|
*
|
||||||
|
* @param int $id
|
||||||
|
* @return Response
|
||||||
|
*/
|
||||||
|
public function edit($id)
|
||||||
|
{
|
||||||
|
//
|
||||||
|
$entity = \App\AndroidTask::find($id);
|
||||||
|
$x=['data'=>$entity];
|
||||||
|
$items = \App\AndroidTopic::pluck('name', 'id');
|
||||||
|
return view('admin/tasks/edit')->with($x)->with(compact('items'));
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Update the specified resource in storage.
|
||||||
|
*
|
||||||
|
* @param int $id
|
||||||
|
* @return Response
|
||||||
|
*/
|
||||||
|
public function update(Request $request, $id)
|
||||||
|
{
|
||||||
|
//
|
||||||
|
$rules =[
|
||||||
|
'taskno'=>'required',
|
||||||
|
'desc'=>'required'
|
||||||
|
];
|
||||||
|
|
||||||
|
$msg=[
|
||||||
|
'taskno.required'=>'Task number must not empty',
|
||||||
|
'desc.required'=>'Description must not empty'
|
||||||
|
];
|
||||||
|
|
||||||
|
|
||||||
|
$validator=Validator::make($request->all(),$rules,$msg);
|
||||||
|
|
||||||
|
if ($validator->fails()) {
|
||||||
|
return Redirect::to('admin/topics/'.$id.'/edit')
|
||||||
|
->withErrors($validator);
|
||||||
|
|
||||||
|
}else{
|
||||||
|
$entity=\App\AndroidTask::find($id);
|
||||||
|
|
||||||
|
$entity->desc=$request->get('desc');
|
||||||
|
$entity->taskno=$request->get('taskno');
|
||||||
|
$entity->topic=$request->get('topic');
|
||||||
|
$entity->save();
|
||||||
|
|
||||||
|
Session::flash('message','Task with Id='.$id.' is changed');
|
||||||
|
|
||||||
|
return Redirect::to('admin/tasks');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Remove the specified resource from storage.
|
||||||
|
*
|
||||||
|
* @param int $id
|
||||||
|
* @return Response
|
||||||
|
*/
|
||||||
|
public function destroy($id)
|
||||||
|
{
|
||||||
|
//
|
||||||
|
$entity = \App\AndroidTask::find($id);
|
||||||
|
$entity->delete();
|
||||||
|
Session::flash('message','Task with Id='.$id.' is deleted');
|
||||||
|
return Redirect::to('admin/tasks');
|
||||||
|
}
|
||||||
|
}
|
||||||
131
app/Http/Controllers/AndroidFileResultController.php
Normal file
131
app/Http/Controllers/AndroidFileResultController.php
Normal file
|
|
@ -0,0 +1,131 @@
|
||||||
|
<?php
|
||||||
|
|
||||||
|
namespace App\Http\Controllers;
|
||||||
|
|
||||||
|
use Illuminate\Http\Request;
|
||||||
|
use Illuminate\Support\Facades\Validator;
|
||||||
|
use Illuminate\Support\Facades\File;
|
||||||
|
use Illuminate\Support\Facades\Auth;
|
||||||
|
|
||||||
|
use Redirect;
|
||||||
|
use Session;
|
||||||
|
|
||||||
|
class AndroidFileResultController extends Controller
|
||||||
|
{
|
||||||
|
|
||||||
|
public function create($id) {
|
||||||
|
//
|
||||||
|
$topic = \App\AndroidTopic::find($id);
|
||||||
|
$files = \App\AndroidTopicFiles::where('topic','=',$id)->get();
|
||||||
|
|
||||||
|
return view('student/androidcourse/lfiles/create')
|
||||||
|
->with(compact('files'))
|
||||||
|
->with(compact('topic'));
|
||||||
|
}
|
||||||
|
|
||||||
|
public function store(Request $request)
|
||||||
|
{
|
||||||
|
//
|
||||||
|
$rules =[
|
||||||
|
'rscfile'=>'required'
|
||||||
|
];
|
||||||
|
|
||||||
|
$msg=[
|
||||||
|
'rscfile.required'=>'Resource File must not empty'
|
||||||
|
];
|
||||||
|
|
||||||
|
$validator=Validator::make($request->all(),$rules,$msg);
|
||||||
|
|
||||||
|
//jika data ada yang kosong
|
||||||
|
if ($validator->fails()) {
|
||||||
|
return Redirect::to('student/androidcourse/lfiles/create/'.$request->get('topic'))
|
||||||
|
->withErrors($validator);
|
||||||
|
} else {
|
||||||
|
$file = $request->file('rscfile');
|
||||||
|
$filename = $file->getClientOriginalName();
|
||||||
|
|
||||||
|
$fileinfo = \App\AndroidTopicFiles::find($request->get('fileid'));
|
||||||
|
if ($fileinfo['fileName']!=$filename) {
|
||||||
|
return Redirect::to('student/androidcourse/lfiles/create/'.$request->get('topic'))
|
||||||
|
->withErrors("File name should be ".$fileinfo['fileName']);
|
||||||
|
} else {
|
||||||
|
$result = \App\AndroidFileResult::where('userid','=',Auth::user()->id)
|
||||||
|
->where('fileid','=',$request->get('fileid'))
|
||||||
|
->get();
|
||||||
|
if (count($result)>0) {
|
||||||
|
return Redirect::to('student/androidcourse/lfiles/create/'.$request->get('topic'))
|
||||||
|
->withErrors('File '.$fileinfo['fileName'].' was already submitted');
|
||||||
|
} else {
|
||||||
|
$rsc=$file->store('resource','public');
|
||||||
|
$entity=new \App\AndroidFileResult;
|
||||||
|
|
||||||
|
$entity->userid=Auth::user()->id;
|
||||||
|
$entity->fileid=$request->get('fileid');
|
||||||
|
$entity->rscfile=$rsc;
|
||||||
|
$entity->save();
|
||||||
|
|
||||||
|
Session::flash('message','A New File Result Stored');
|
||||||
|
|
||||||
|
//return "Add new topic is success";
|
||||||
|
return Redirect::to('student/androidcourse/results?topicList='.$fileinfo['topic'])->with( [ 'topic' => $request->get('topic') ] );
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public function destroy(Request $request,$id)
|
||||||
|
{
|
||||||
|
//
|
||||||
|
$entity = \App\AndroidFileResult::find($id);
|
||||||
|
|
||||||
|
$path = storage_path('app\\public\\').$entity['rscfile'];
|
||||||
|
//$path = str_replace('\\',DIRECTORY_SEPARATOR,$path);
|
||||||
|
|
||||||
|
//$dirpath = storage_path('app\\public\\\');
|
||||||
|
File::delete(getPath($path));
|
||||||
|
|
||||||
|
$entity->delete();
|
||||||
|
Session::flash('File Result with Id='.$id.' is deleted');
|
||||||
|
return Redirect::to('student/androidcourse/results?topicList='.$request->get('topic'));
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public function delete($id,$topic)
|
||||||
|
{
|
||||||
|
//
|
||||||
|
$entity = \App\AndroidFileResult::find($id);
|
||||||
|
|
||||||
|
$path = storage_path('app\\public\\').$entity['rscfile'];
|
||||||
|
//$path = str_replace('\\',DIRECTORY_SEPARATOR,$path);
|
||||||
|
|
||||||
|
//$dirpath = storage_path('app\\public\\\');
|
||||||
|
File::delete($path);
|
||||||
|
|
||||||
|
$entity->delete();
|
||||||
|
Session::flash('File Result with Id='.$id.' is deleted');
|
||||||
|
return Redirect::to('student/androidcourse/results?topicList='.$topic.'&option=files');
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public function submit($id) {
|
||||||
|
//
|
||||||
|
$entity=new \App\AndroidStudentSubmit;
|
||||||
|
|
||||||
|
$entity->userid=Auth::user()->id;
|
||||||
|
$entity->topic=$id;
|
||||||
|
$entity->validstat="valid";
|
||||||
|
$entity->save();
|
||||||
|
|
||||||
|
$topic = \App\AndroidTopic::find($id);
|
||||||
|
Session::flash('message','Topic '.$topic['name'].' Validation is Success');
|
||||||
|
|
||||||
|
//return "Add new topic is success";
|
||||||
|
return Redirect::to('student/androidcourse/results?topicList='.$id);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
public function getPath($path) {
|
||||||
|
$res = str_replace('\\',DIRECTORY_SEPARATOR,$path);
|
||||||
|
return str_replace('/',DIRECTORY_SEPARATOR,$res);
|
||||||
|
}
|
||||||
|
}
|
||||||
404
app/Http/Controllers/AndroidResultController.php
Normal file
404
app/Http/Controllers/AndroidResultController.php
Normal file
|
|
@ -0,0 +1,404 @@
|
||||||
|
<?php
|
||||||
|
|
||||||
|
namespace App\Http\Controllers;
|
||||||
|
|
||||||
|
use Illuminate\Http\Request;
|
||||||
|
use Illuminate\Support\Facades\Validator;
|
||||||
|
use Illuminate\Support\Facades\Auth;
|
||||||
|
|
||||||
|
use Redirect;
|
||||||
|
use Session;
|
||||||
|
|
||||||
|
class AndroidResultController extends Controller
|
||||||
|
{
|
||||||
|
public function index(Request $request) {
|
||||||
|
//$check=\App\StudentTeacher::where('student','=',Auth::user()->id);
|
||||||
|
//if ($check->count()==0) return view('student/home')->with(['count'=>$check->count()]);
|
||||||
|
$check=\App\User::find(Auth::user()->id);
|
||||||
|
if ($check->status!='active') return view('student/androidcourse/home')->with(['status'=>$check->status]);
|
||||||
|
|
||||||
|
$filter = $request->input('topicList','6');
|
||||||
|
if ($filter=='0') {
|
||||||
|
$entities=\App\AndroidTaskResult::where('userid','=',Auth::user()->id);
|
||||||
|
} else {
|
||||||
|
$entities = \App\AndroidTask::where('tasks.topic','=',$filter)
|
||||||
|
->select(
|
||||||
|
'task_results.id',
|
||||||
|
'task_results.taskid',
|
||||||
|
'task_results.userid',
|
||||||
|
'task_results.status',
|
||||||
|
'task_results.duration',
|
||||||
|
'task_results.comment',
|
||||||
|
'task_results.imgFile',
|
||||||
|
'tasks.taskno',
|
||||||
|
'tasks.desc',
|
||||||
|
'tasks.topic'
|
||||||
|
)
|
||||||
|
->leftJoin('task_results', function($join)
|
||||||
|
{
|
||||||
|
$join->on('tasks.id','=','task_results.taskid')
|
||||||
|
->where('task_results.userid', '=', Auth::user()->id);
|
||||||
|
}
|
||||||
|
)
|
||||||
|
->orderBy('tasks.taskno', 'asc')
|
||||||
|
->get();
|
||||||
|
}
|
||||||
|
|
||||||
|
$lfiles = \App\AndroidTopicFiles::where('topic_files.topic','=',$filter)
|
||||||
|
->select(
|
||||||
|
'file_results.id',
|
||||||
|
'file_results.userid',
|
||||||
|
'file_results.rscfile',
|
||||||
|
'file_results.fileid',
|
||||||
|
'topic_files.fileName',
|
||||||
|
'topic_files.path',
|
||||||
|
'topic_files.desc'
|
||||||
|
)
|
||||||
|
->leftJoin('file_results', function($join)
|
||||||
|
{
|
||||||
|
$join->on('topic_files.id','=','file_results.fileid')
|
||||||
|
->where('file_results.userid', '=', Auth::user()->id);
|
||||||
|
}
|
||||||
|
)
|
||||||
|
->orderBy('topic_files.fileName', 'asc')
|
||||||
|
->get();
|
||||||
|
|
||||||
|
$items = \App\AndroidTopic::
|
||||||
|
where('status','>=','0')
|
||||||
|
->where('androidclass','=','AndroidX')
|
||||||
|
->orderBy('name','asc')
|
||||||
|
->orderBy('level','asc')
|
||||||
|
->pluck('name', 'id');
|
||||||
|
|
||||||
|
$valid = \App\AndroidStudentSubmit::where('userid','=',Auth::user()->id)
|
||||||
|
->where('topic','=',$filter)
|
||||||
|
->get()->count();
|
||||||
|
|
||||||
|
$option = $request->input('option','github');
|
||||||
|
|
||||||
|
$currtopic = \App\AndroidTopic::find($filter);
|
||||||
|
|
||||||
|
return view('student/androidcourse/results/index')
|
||||||
|
->with(compact('entities'))
|
||||||
|
->with(compact('lfiles'))
|
||||||
|
->with(compact('items'))
|
||||||
|
->with(compact('filter'))
|
||||||
|
->with(compact('option'))
|
||||||
|
->with(compact('currtopic'))
|
||||||
|
->with(compact('valid'));
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
public function getTaskData($topic) {
|
||||||
|
$items = \App\AndroidTask::where('tasks.topic','=',$topic)
|
||||||
|
->select(
|
||||||
|
'tasks.id',
|
||||||
|
'tasks.taskno',
|
||||||
|
'tasks.desc',
|
||||||
|
'topics.name'
|
||||||
|
)
|
||||||
|
->join(
|
||||||
|
'topics',
|
||||||
|
'topics.id','=','tasks.topic'
|
||||||
|
)
|
||||||
|
->orderBy('topics.name', 'asc')
|
||||||
|
->orderBy('tasks.taskno', 'asc')
|
||||||
|
->get();
|
||||||
|
|
||||||
|
return $items;
|
||||||
|
}
|
||||||
|
public function create($id)
|
||||||
|
{
|
||||||
|
$items = \App\AndroidTask::where('topic','=',$id)
|
||||||
|
->orderBy('taskno', 'asc')
|
||||||
|
->get();
|
||||||
|
$topic = \App\AndroidTopic::find($id);
|
||||||
|
return view('student/androidcourse/results/create')
|
||||||
|
->with(compact('topic'))
|
||||||
|
->with(compact('items'));
|
||||||
|
}
|
||||||
|
|
||||||
|
private function validateByFiles($userid, $topic) {
|
||||||
|
//
|
||||||
|
$entity=new \App\AndroidStudentSubmit;
|
||||||
|
|
||||||
|
$entity->userid=$userid;
|
||||||
|
$entity->topic=$topic;
|
||||||
|
$entity->validstat="valid";
|
||||||
|
$entity->save();
|
||||||
|
|
||||||
|
$data = \App\AndroidTopic::find($topic);
|
||||||
|
Session::flash('message','Topic '.$data['name'].' Validation is Success');
|
||||||
|
|
||||||
|
//return "Add new topic is success";
|
||||||
|
return Redirect::to('student/androidcourse/results?topicList='.$topic.'&option=files');
|
||||||
|
}
|
||||||
|
|
||||||
|
private function validateZipFile($userid, $topic, $file, $path) {
|
||||||
|
//
|
||||||
|
//$file = $request->file('zipfile');
|
||||||
|
if ($path!='' ) {
|
||||||
|
//$array = explode('.', $path);
|
||||||
|
//$ext = strtolower(end($array));
|
||||||
|
$ext = strtolower(pathinfo($path, PATHINFO_EXTENSION));
|
||||||
|
if ($ext=="zip") {
|
||||||
|
$zipFile=$file->store('results','public');
|
||||||
|
|
||||||
|
if ($zipFile!='') {
|
||||||
|
$entity=new \App\AndroidStudentSubmit;
|
||||||
|
|
||||||
|
$entity->userid=$userid;
|
||||||
|
$entity->topic=$topic;
|
||||||
|
$entity->validstat="valid";
|
||||||
|
$entity->projectfile=$zipFile;
|
||||||
|
|
||||||
|
$entity->save();
|
||||||
|
|
||||||
|
$data = \App\AndroidTopic::find($topic);
|
||||||
|
Session::flash('message','Topic '.$data['name'].' Validation by Uploading Zip Project is Success');
|
||||||
|
} else {
|
||||||
|
Session::flash('message','Storing file '.$request->file('zipfile').' was FAILED');
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
Session::flash('message','File extension is not zip -> '.$path.' is wrong .'.$ext);
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
Session::flash('message','Zip File is empty');
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
//return "Add new topic is success";
|
||||||
|
return Redirect::to('student/androidcourse/results?topicList='.$topic.'&option=zipfile');
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
private function validateGithubLink($userid, $topic, $link, $projname) {
|
||||||
|
//
|
||||||
|
$trimmedlink = trim($link);
|
||||||
|
if ($this->validateUrl($trimmedlink,$projname)) {
|
||||||
|
/*
|
||||||
|
$zipFile=$file->store('results','public');
|
||||||
|
|
||||||
|
if ($zipFile!='') {
|
||||||
|
$entity=new \App\AndroidStudentSubmit;
|
||||||
|
|
||||||
|
$entity->userid=$userid;
|
||||||
|
$entity->topic=$topic;
|
||||||
|
$entity->validstat="valid";
|
||||||
|
$entity->projectfile=$zipFile;
|
||||||
|
|
||||||
|
$entity->save();
|
||||||
|
|
||||||
|
$data = \App\AndroidTopic::find($topic);
|
||||||
|
Session::flash('message','Topic '.$data['name'].' Validation is Success');
|
||||||
|
} else {
|
||||||
|
Session::flash('message','Storing file '.$request->file('zipfile').' was FAILED');
|
||||||
|
}
|
||||||
|
*/
|
||||||
|
$entity=new \App\AndroidStudentSubmit;
|
||||||
|
|
||||||
|
$entity->userid=$userid;
|
||||||
|
$entity->topic=$topic;
|
||||||
|
$entity->validstat="valid";
|
||||||
|
$entity->githublink=$trimmedlink;
|
||||||
|
|
||||||
|
$entity->save();
|
||||||
|
|
||||||
|
$data = \App\AndroidTopic::find($topic);
|
||||||
|
Session::flash('message','Topic '.$data['name'].' Validation by submitting GitHub link is Success');
|
||||||
|
|
||||||
|
//Session::flash('message','URL valid '.$link);
|
||||||
|
|
||||||
|
} else {
|
||||||
|
Session::flash('message','URL is not VALID '.$link);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
//return "Add new topic is success";
|
||||||
|
return Redirect::to('student/androidcourse/results?topicList='.$topic.'&option=github');
|
||||||
|
}
|
||||||
|
|
||||||
|
private function validateUrl($url,$projname) {
|
||||||
|
$path = parse_url($url, PHP_URL_PATH);
|
||||||
|
$encoded_path = array_map('urlencode', explode('/', $path));
|
||||||
|
$url = str_replace($path, implode('/', $encoded_path), $url);
|
||||||
|
|
||||||
|
if (filter_var($url, FILTER_VALIDATE_URL)) {
|
||||||
|
$result = parse_url($url);
|
||||||
|
if ( ($result['scheme']=='https') && ($this->endsWith($result['host'],'github.com'))
|
||||||
|
&& (strpos($result['path'],$projname)) ) {
|
||||||
|
return true;
|
||||||
|
} else {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private function endsWith($haystack, $needle) {
|
||||||
|
return substr_compare($haystack, $needle, -strlen($needle)) === 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
private function saveTaskResult(Request $request)
|
||||||
|
{
|
||||||
|
//
|
||||||
|
$rules =[
|
||||||
|
'duration'=>'required',
|
||||||
|
'image'=>'required',
|
||||||
|
'comment'=>'required'
|
||||||
|
];
|
||||||
|
|
||||||
|
$msg=[
|
||||||
|
'duration.required'=>'Duration time must not empty',
|
||||||
|
'image.required'=>'Evidence image file must not empty',
|
||||||
|
'comment.required'=>'Comment must not empty'
|
||||||
|
];
|
||||||
|
|
||||||
|
$validator=Validator::make($request->all(),$rules,$msg);
|
||||||
|
|
||||||
|
//jika data ada yang kosong
|
||||||
|
if ($validator->fails()) {
|
||||||
|
|
||||||
|
//refresh halaman
|
||||||
|
return Redirect::to('student/androidcourse/results/create/'.$request->get('topic'))
|
||||||
|
->withErrors($validator);
|
||||||
|
|
||||||
|
} else {
|
||||||
|
$check = \App\AndroidTaskResult::where('userid','=',Auth::user()->id)
|
||||||
|
->where('taskid','=',$request->get('taskid'))
|
||||||
|
->get();
|
||||||
|
|
||||||
|
if (sizeof($check)>0) {
|
||||||
|
$task = \App\AndroidTask::find($request->get('taskid'));
|
||||||
|
$message = 'Result of Task '.$task['desc'].' is already submitted!!';
|
||||||
|
//Session::flash('message',);
|
||||||
|
return Redirect::to('student/androidcourse/results/create'.$request->get('topic'))->withErrors($message);
|
||||||
|
|
||||||
|
} else {
|
||||||
|
$file = $request->file('image');
|
||||||
|
$imgFile=$file->store('results','public');
|
||||||
|
|
||||||
|
$entity=new \App\AndroidTaskResult;
|
||||||
|
|
||||||
|
$comment = ($request->get('comment')==null)?'-':$request->get('comment');
|
||||||
|
|
||||||
|
$entity->userid=Auth::user()->id;
|
||||||
|
$entity->taskid=$request->get('taskid');
|
||||||
|
$entity->status=$request->get('status');
|
||||||
|
$entity->duration=$request->get('duration');
|
||||||
|
$entity->comment=$comment;
|
||||||
|
$entity->imgFile=$imgFile;
|
||||||
|
$entity->save();
|
||||||
|
|
||||||
|
Session::flash('message','A New Task Result Stored');
|
||||||
|
|
||||||
|
//return "Add new topic is success";
|
||||||
|
return Redirect::to('student/androidcourse/results?topicList='.$request->get('topic'))->with( [ 'topic' => $request->get('topic') ] );
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public function store(Request $request)
|
||||||
|
{
|
||||||
|
if (strlen($request->get('option'))>3) {
|
||||||
|
if (($request->get('action')=='validate') && (strlen($request->submitbutton)>5)) {
|
||||||
|
if ($request->get('option')=='files') {
|
||||||
|
return $this->validateByFiles(Auth::user()->id, $request->get('topic'));
|
||||||
|
} else if ($request->get('option')=='zipfile') {
|
||||||
|
$file = $request->file('zipfile');
|
||||||
|
$filename = $file->getClientOriginalName();
|
||||||
|
return $this->validateZipFile(Auth::user()->id, $request->get('topic'), $file, $filename);
|
||||||
|
} else if ($request->get('option')=='github') {
|
||||||
|
return $this->validateGithubLink(Auth::user()->id, $request->get('topic'), $request->get('githublink'),
|
||||||
|
$request->get('projname'));
|
||||||
|
} else {
|
||||||
|
return Redirect::to('student/androidcourse/results?topicList='.$request->get('topic').'&option='.$request->get('option').
|
||||||
|
'&submit='.$request->submitbutton);
|
||||||
|
}
|
||||||
|
} else { //clicking radio button
|
||||||
|
return Redirect::to('student/androidcourse/results?topicList='.$request->get('topic').'&option='.$request->get('option'));
|
||||||
|
//'&submit='.$request->submitbutton);
|
||||||
|
}
|
||||||
|
|
||||||
|
} else { //echo $request;
|
||||||
|
return $this->saveTaskResult($request);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public function destroy(Request $request, $id)
|
||||||
|
{
|
||||||
|
//
|
||||||
|
$entity = \App\AndroidTaskResult::find($id);
|
||||||
|
$entity->delete();
|
||||||
|
Session::flash('message','Task Result with Id='.$id.' is deleted');
|
||||||
|
return Redirect::to('student/androidcourse/results?topicList='.$request->get('topic'));
|
||||||
|
}
|
||||||
|
|
||||||
|
public function edit($id)
|
||||||
|
{
|
||||||
|
//
|
||||||
|
$entity = \App\AndroidTaskResult::where('id','=',$id)->first();
|
||||||
|
$task = \App\AndroidTask::where('id','=',$entity['taskid'])->first();
|
||||||
|
return view('student/androidcourse/results/edit')->with(compact('entity'))
|
||||||
|
->with(compact('task'));
|
||||||
|
}
|
||||||
|
|
||||||
|
public function valsub(Request $request)
|
||||||
|
{
|
||||||
|
$items = \App\AndroidTask::where('topic','=',$id)
|
||||||
|
->orderBy('taskno', 'asc')
|
||||||
|
->get();
|
||||||
|
$topic = \App\AndroidTopic::find($id);
|
||||||
|
return view('student/androidcourse/results/create')
|
||||||
|
->with(compact('topic'))
|
||||||
|
->with(compact('items'));
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public function update(Request $request, $id) {
|
||||||
|
//
|
||||||
|
$rules =[
|
||||||
|
'duration'=>'required',
|
||||||
|
];
|
||||||
|
|
||||||
|
$msg=[
|
||||||
|
'duration.required'=>'Duration time must not empty',
|
||||||
|
];
|
||||||
|
|
||||||
|
|
||||||
|
$validator=Validator::make($request->all(),$rules,$msg);
|
||||||
|
|
||||||
|
if ($validator->fails()) {
|
||||||
|
return Redirect::to('student/androidcourse/results/'.$id.'/edit')
|
||||||
|
->withErrors($validator);
|
||||||
|
|
||||||
|
}else{
|
||||||
|
$file = $request->file('image');
|
||||||
|
|
||||||
|
$entity=\App\AndroidTaskResult::find($id);
|
||||||
|
|
||||||
|
$entity->taskid=$request->get('taskid');
|
||||||
|
$entity->status=$request->get('status');
|
||||||
|
$entity->duration=$request->get('duration');
|
||||||
|
$entity->comment=$request->get('comment');
|
||||||
|
|
||||||
|
if ($file!='') {
|
||||||
|
$imgFile=$file->store('results','public');
|
||||||
|
$entity->imgFile=$imgFile;
|
||||||
|
}
|
||||||
|
$entity->save();
|
||||||
|
|
||||||
|
Session::flash('message','Task Result with Id='.$id.' is changed');
|
||||||
|
|
||||||
|
$task = \App\AndroidTask::find($request->get('taskid'));
|
||||||
|
return Redirect::to('student/androidcourse/results?topicList='.$task['topic']);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
379
app/Http/Controllers/AndroidTaskResultController.php
Normal file
379
app/Http/Controllers/AndroidTaskResultController.php
Normal file
|
|
@ -0,0 +1,379 @@
|
||||||
|
<?php
|
||||||
|
|
||||||
|
namespace App\Http\Controllers;
|
||||||
|
|
||||||
|
use Illuminate\Http\Request;
|
||||||
|
use Illuminate\Support\Facades\Validator;
|
||||||
|
use Illuminate\Support\Facades\Auth;
|
||||||
|
|
||||||
|
use Redirect;
|
||||||
|
use Session;
|
||||||
|
|
||||||
|
class AndroidTaskResultController extends Controller
|
||||||
|
{
|
||||||
|
public function index(Request $request) {
|
||||||
|
$check=\App\AndroidUser::find(Auth::user()->id);
|
||||||
|
if ($check->status!='active') return view('student/androidcourse/home')->with(['status'=>$check->status]);
|
||||||
|
|
||||||
|
$filter = $request->input('topicList','6');
|
||||||
|
if ($filter=='0') {
|
||||||
|
$entities=\App\AndroidTaskResult::where('userid','=',Auth::user()->id);
|
||||||
|
} else {
|
||||||
|
$entities = \App\AndroidTask::where('tasks.topic','=',$filter)
|
||||||
|
->select(
|
||||||
|
'task_results.id',
|
||||||
|
'task_results.taskid',
|
||||||
|
'task_results.userid',
|
||||||
|
'task_results.status',
|
||||||
|
'task_results.duration',
|
||||||
|
'task_results.comment',
|
||||||
|
'task_results.imgFile',
|
||||||
|
'tasks.taskno',
|
||||||
|
'tasks.desc',
|
||||||
|
'tasks.topic'
|
||||||
|
)
|
||||||
|
->leftJoin('task_results', function($join)
|
||||||
|
{
|
||||||
|
$join->on('tasks.id','=','task_results.taskid')
|
||||||
|
->where('task_results.userid', '=', Auth::user()->id);
|
||||||
|
}
|
||||||
|
)
|
||||||
|
->orderBy('tasks.taskno', 'asc')
|
||||||
|
->get();
|
||||||
|
}
|
||||||
|
|
||||||
|
$lfiles = \App\AndroidTopicFiles::where('topic_files.topic','=',$filter)
|
||||||
|
->select(
|
||||||
|
'file_results.id',
|
||||||
|
'file_results.userid',
|
||||||
|
'file_results.rscfile',
|
||||||
|
'file_results.fileid',
|
||||||
|
'topic_files.fileName',
|
||||||
|
'topic_files.path',
|
||||||
|
'topic_files.desc'
|
||||||
|
)
|
||||||
|
->leftJoin('file_results', function($join)
|
||||||
|
{
|
||||||
|
$join->on('topic_files.id','=','file_results.fileid')
|
||||||
|
->where('file_results.userid', '=', Auth::user()->id);
|
||||||
|
}
|
||||||
|
)
|
||||||
|
->orderBy('topic_files.fileName', 'asc')
|
||||||
|
->get();
|
||||||
|
|
||||||
|
$items = \App\AndroidTopic::
|
||||||
|
where('status','>=','0')
|
||||||
|
->where('androidclass','=','AndroidX')
|
||||||
|
->orderBy('name','asc')
|
||||||
|
->orderBy('level','asc')
|
||||||
|
->pluck('name', 'id');
|
||||||
|
|
||||||
|
$valid = \App\AndroidStudentSubmit::where('userid','=',Auth::user()->id)
|
||||||
|
->where('topic','=',$filter)
|
||||||
|
->get()->count();
|
||||||
|
|
||||||
|
$option = $request->input('option','github');
|
||||||
|
|
||||||
|
$currtopic = \App\AndroidTopic::find($filter);
|
||||||
|
|
||||||
|
return view('student/androidcourse/results/index')
|
||||||
|
->with(compact('entities'))
|
||||||
|
->with(compact('lfiles'))
|
||||||
|
->with(compact('items'))
|
||||||
|
->with(compact('filter'))
|
||||||
|
->with(compact('option'))
|
||||||
|
->with(compact('currtopic'))
|
||||||
|
->with(compact('valid'));
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
public function getTaskData($topic) {
|
||||||
|
$items = \App\AndroidTask::where('tasks.topic','=',$topic)
|
||||||
|
->select(
|
||||||
|
'tasks.id',
|
||||||
|
'tasks.taskno',
|
||||||
|
'tasks.desc',
|
||||||
|
'topics.name'
|
||||||
|
)
|
||||||
|
->join(
|
||||||
|
'topics',
|
||||||
|
'topics.id','=','tasks.topic'
|
||||||
|
)
|
||||||
|
->orderBy('topics.name', 'asc')
|
||||||
|
->orderBy('tasks.taskno', 'asc')
|
||||||
|
->get();
|
||||||
|
|
||||||
|
return $items;
|
||||||
|
}
|
||||||
|
public function create($id)
|
||||||
|
{
|
||||||
|
$items = \App\AndroidTask::where('topic','=',$id)
|
||||||
|
->orderBy('taskno', 'asc')
|
||||||
|
->get();
|
||||||
|
$topic = \App\AndroidTopic::find($id);
|
||||||
|
return view('student/androidcourse/results/create')
|
||||||
|
->with(compact('topic'))
|
||||||
|
->with(compact('items'));
|
||||||
|
}
|
||||||
|
|
||||||
|
private function validateByFiles($userid, $topic) {
|
||||||
|
//
|
||||||
|
$entity=new \App\AndroidStudentSubmit;
|
||||||
|
|
||||||
|
$entity->userid=$userid;
|
||||||
|
$entity->topic=$topic;
|
||||||
|
$entity->validstat="valid";
|
||||||
|
$entity->save();
|
||||||
|
|
||||||
|
$data = \App\AndroidTopic::find($topic);
|
||||||
|
Session::flash('message','Topic '.$data['name'].' Validation is Success');
|
||||||
|
|
||||||
|
return Redirect::to('student/androidcourse/results?topicList='.$topic.'&option=files');
|
||||||
|
}
|
||||||
|
|
||||||
|
private function validateZipFile($userid, $topic, $file, $path) {
|
||||||
|
|
||||||
|
if ($path!='' ) {
|
||||||
|
$ext = strtolower(pathinfo($path, PATHINFO_EXTENSION));
|
||||||
|
if ($ext=="zip") {
|
||||||
|
$zipFile=$file->store('results','public');
|
||||||
|
|
||||||
|
if ($zipFile!='') {
|
||||||
|
$entity=new \App\AndroidStudentSubmit;
|
||||||
|
|
||||||
|
$entity->userid=$userid;
|
||||||
|
$entity->topic=$topic;
|
||||||
|
$entity->validstat="valid";
|
||||||
|
$entity->projectfile=$zipFile;
|
||||||
|
|
||||||
|
$entity->save();
|
||||||
|
|
||||||
|
$data = \App\AndroidTopic::find($topic);
|
||||||
|
Session::flash('message','Topic '.$data['name'].' Validation by Uploading Zip Project is Success');
|
||||||
|
} else {
|
||||||
|
Session::flash('message','Storing file '.$request->file('zipfile').' was FAILED');
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
Session::flash('message','File extension is not zip -> '.$path.' is wrong .'.$ext);
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
Session::flash('message','Zip File is empty');
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
//return "Add new topic is success";
|
||||||
|
return Redirect::to('student/androidcourse/results?topicList='.$topic.'&option=zipfile');
|
||||||
|
}
|
||||||
|
|
||||||
|
private function validateGithubLink($userid, $topic, $link, $projname) {
|
||||||
|
//
|
||||||
|
$trimmedlink = trim($link);
|
||||||
|
if ($this->validateUrl($trimmedlink,$projname)) {
|
||||||
|
|
||||||
|
$entity=new \App\AndroidStudentSubmit;
|
||||||
|
|
||||||
|
$entity->userid=$userid;
|
||||||
|
$entity->topic=$topic;
|
||||||
|
$entity->validstat="valid";
|
||||||
|
$entity->githublink=$trimmedlink;
|
||||||
|
|
||||||
|
$entity->save();
|
||||||
|
|
||||||
|
$data = \App\AndroidTopic::find($topic);
|
||||||
|
Session::flash('message','Topic '.$data['name'].' Validation by submitting GitHub link is Success');
|
||||||
|
|
||||||
|
//Session::flash('message','URL valid '.$link);
|
||||||
|
|
||||||
|
} else {
|
||||||
|
Session::flash('message','URL is not VALID '.$link);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
//return "Add new topic is success";
|
||||||
|
return Redirect::to('student/androidcourse/results?topicList='.$topic.'&option=github');
|
||||||
|
}
|
||||||
|
|
||||||
|
private function validateUrl($url,$projname) {
|
||||||
|
$path = parse_url($url, PHP_URL_PATH);
|
||||||
|
$encoded_path = array_map('urlencode', explode('/', $path));
|
||||||
|
$url = str_replace($path, implode('/', $encoded_path), $url);
|
||||||
|
|
||||||
|
if (filter_var($url, FILTER_VALIDATE_URL)) {
|
||||||
|
$result = parse_url($url);
|
||||||
|
if ( ($result['scheme']=='https') && ($this->endsWith($result['host'],'github.com'))
|
||||||
|
&& (strpos($result['path'],$projname)) ) {
|
||||||
|
return true;
|
||||||
|
} else {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private function endsWith($haystack, $needle) {
|
||||||
|
return substr_compare($haystack, $needle, -strlen($needle)) === 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
private function saveTaskResult(Request $request)
|
||||||
|
{
|
||||||
|
//
|
||||||
|
$rules =[
|
||||||
|
'duration'=>'required',
|
||||||
|
'image'=>'required',
|
||||||
|
'comment'=>'required'
|
||||||
|
];
|
||||||
|
|
||||||
|
$msg=[
|
||||||
|
'duration.required'=>'Duration time must not empty',
|
||||||
|
'image.required'=>'Evidence image file must not empty',
|
||||||
|
'comment.required'=>'Comment must not empty'
|
||||||
|
];
|
||||||
|
|
||||||
|
$validator=Validator::make($request->all(),$rules,$msg);
|
||||||
|
|
||||||
|
//jika data ada yang kosong
|
||||||
|
if ($validator->fails()) {
|
||||||
|
|
||||||
|
//refresh halaman
|
||||||
|
return Redirect::to('student/androidcourse/results/create/'.$request->get('topic'))
|
||||||
|
->withErrors($validator);
|
||||||
|
|
||||||
|
} else {
|
||||||
|
$check = \App\AndroidTaskResult::where('userid','=',Auth::user()->id)
|
||||||
|
->where('taskid','=',$request->get('taskid'))
|
||||||
|
->get();
|
||||||
|
|
||||||
|
if (sizeof($check)>0) {
|
||||||
|
$task = \App\AndroidTask::find($request->get('taskid'));
|
||||||
|
$message = 'Result of Task '.$task['desc'].' is already submitted!!';
|
||||||
|
//Session::flash('message',);
|
||||||
|
return Redirect::to('student/androidcourse/results/create'.$request->get('topic'))->withErrors($message);
|
||||||
|
|
||||||
|
} else {
|
||||||
|
$file = $request->file('image');
|
||||||
|
$imgFile=$file->store('result','public');
|
||||||
|
|
||||||
|
$entity=new \App\AndroidTaskResult;
|
||||||
|
|
||||||
|
$comment = ($request->get('comment')==null)?'-':$request->get('comment');
|
||||||
|
|
||||||
|
$entity->userid=Auth::user()->id;
|
||||||
|
$entity->taskid=$request->get('taskid');
|
||||||
|
$entity->status=$request->get('status');
|
||||||
|
$entity->duration=$request->get('duration');
|
||||||
|
$entity->comment=$comment;
|
||||||
|
$entity->imgFile=$imgFile;
|
||||||
|
$entity->save();
|
||||||
|
|
||||||
|
Session::flash('message','A New Task Result Stored');
|
||||||
|
|
||||||
|
//return "Add new topic is success";
|
||||||
|
return Redirect::to('student/androidcourse/results?topicList='.$request->get('topic'))->with( [ 'topic' => $request->get('topic') ] );
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public function store(Request $request)
|
||||||
|
{
|
||||||
|
if (strlen($request->get('option'))>3) {
|
||||||
|
if (($request->get('action')=='validate') && (strlen($request->submitbutton)>5)) {
|
||||||
|
if ($request->get('option')=='files') {
|
||||||
|
return $this->validateByFiles(Auth::user()->id, $request->get('topic'));
|
||||||
|
} else if ($request->get('option')=='zipfile') {
|
||||||
|
$file = $request->file('zipfile');
|
||||||
|
$filename = $file->getClientOriginalName();
|
||||||
|
return $this->validateZipFile(Auth::user()->id, $request->get('topic'), $file, $filename);
|
||||||
|
} else if ($request->get('option')=='github') {
|
||||||
|
return $this->validateGithubLink(Auth::user()->id, $request->get('topic'), $request->get('githublink'),
|
||||||
|
$request->get('projname'));
|
||||||
|
} else {
|
||||||
|
return Redirect::to('student/androidcourse/results?topicList='.$request->get('topic').'&option='.$request->get('option').
|
||||||
|
'&submit='.$request->submitbutton);
|
||||||
|
}
|
||||||
|
} else { //clicking radio button
|
||||||
|
return Redirect::to('student/androidcourse/results?topicList='.$request->get('topic').'&option='.$request->get('option'));
|
||||||
|
//'&submit='.$request->submitbutton);
|
||||||
|
}
|
||||||
|
|
||||||
|
} else { //echo $request;
|
||||||
|
return $this->saveTaskResult($request);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public function destroy(Request $request, $id)
|
||||||
|
{
|
||||||
|
//
|
||||||
|
$entity = \App\AndroidTaskResult::find($id);
|
||||||
|
$entity->delete();
|
||||||
|
Session::flash('message','Task Result with Id='.$id.' is deleted');
|
||||||
|
return Redirect::to('student/androidcourse/results?topicList='.$request->get('topic'));
|
||||||
|
}
|
||||||
|
|
||||||
|
public function edit($id)
|
||||||
|
{
|
||||||
|
//
|
||||||
|
$entity = \App\AndroidTaskResult::where('id','=',$id)->first();
|
||||||
|
$task = \App\AndroidTask::where('id','=',$entity['taskid'])->first();
|
||||||
|
return view('student/androidcourse/results/edit')->with(compact('entity'))
|
||||||
|
->with(compact('task'));
|
||||||
|
}
|
||||||
|
|
||||||
|
public function valsub(Request $request)
|
||||||
|
{
|
||||||
|
$items = \App\AndroidTask::where('topic','=',$id)
|
||||||
|
->orderBy('taskno', 'asc')
|
||||||
|
->get();
|
||||||
|
$topic = \App\AndroidTopic::find($id);
|
||||||
|
return view('student/androidcourse/results/create')
|
||||||
|
->with(compact('topic'))
|
||||||
|
->with(compact('items'));
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public function update(Request $request, $id) {
|
||||||
|
//
|
||||||
|
$rules =[
|
||||||
|
'duration'=>'required',
|
||||||
|
];
|
||||||
|
|
||||||
|
$msg=[
|
||||||
|
'duration.required'=>'Duration time must not empty',
|
||||||
|
];
|
||||||
|
|
||||||
|
|
||||||
|
$validator=Validator::make($request->all(),$rules,$msg);
|
||||||
|
|
||||||
|
if ($validator->fails()) {
|
||||||
|
return Redirect::to('student/androidcourse/results/'.$id.'/edit')
|
||||||
|
->withErrors($validator);
|
||||||
|
|
||||||
|
}else{
|
||||||
|
$file = $request->file('image');
|
||||||
|
|
||||||
|
$entity=\App\AndroidTaskResult::find($id);
|
||||||
|
|
||||||
|
$entity->taskid=$request->get('taskid');
|
||||||
|
$entity->status=$request->get('status');
|
||||||
|
$entity->duration=$request->get('duration');
|
||||||
|
$entity->comment=$request->get('comment');
|
||||||
|
|
||||||
|
if ($file!='') {
|
||||||
|
$imgFile=$file->store('results','public');
|
||||||
|
$entity->imgFile=$imgFile;
|
||||||
|
}
|
||||||
|
$entity->save();
|
||||||
|
|
||||||
|
Session::flash('message','Task Result with Id='.$id.' is changed');
|
||||||
|
|
||||||
|
$task = \App\AndroidTask::find($request->get('taskid'));
|
||||||
|
return Redirect::to('student/androidcourse/results?topicList='.$task['topic']);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
@ -1,206 +0,0 @@
|
||||||
@extends('student/androidcourse/home')
|
|
||||||
@section('content')
|
|
||||||
<div class="row">
|
|
||||||
<div class="col-12">
|
|
||||||
<div class="card-header">
|
|
||||||
<h3 class="card-title">
|
|
||||||
Start Learning Android Programming with iCLOP
|
|
||||||
</h3>
|
|
||||||
</div>
|
|
||||||
<div class="card-body">
|
|
||||||
<form
|
|
||||||
method="GET"
|
|
||||||
action="http://learning.aplas.online/aplas/public/student/tasks"
|
|
||||||
accept-charset="UTF-8"
|
|
||||||
>
|
|
||||||
<div class="form-group">
|
|
||||||
<label for="topic">Learning Topic:</label>
|
|
||||||
<select
|
|
||||||
class="form-control"
|
|
||||||
id="topicList"
|
|
||||||
onchange="this.form.submit();"
|
|
||||||
name="topicList"
|
|
||||||
>
|
|
||||||
<option value="6" selected="selected">
|
|
||||||
A2:Android Java - AsyncTask - for Android Studio
|
|
||||||
|
|
||||||
</option>
|
|
||||||
</select>
|
|
||||||
<div class="form-group">
|
|
||||||
<label for="description">Description</label>
|
|
||||||
<textarea
|
|
||||||
id="desc"
|
|
||||||
class="form-control"
|
|
||||||
disabled=""
|
|
||||||
rows="2"
|
|
||||||
>
|
|
||||||
Java Edition for Android Studio
|
|
||||||
This topic contains learning about AsyncTask
|
|
||||||
</textarea
|
|
||||||
>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<!--
|
|
||||||
<label for="topic">Topic:</label>
|
|
||||||
<select class="form-control" onchange="doSomething(this)" id="topic" name="topic"><option value="6">A1:Java - Basic UI Java Edition - for Android Studio 3.x</option><option value="28">A1:Java - Basic UI Java Edition - for Android Studio 4.x</option><option value="15">A1:Kotlin - Basic UI Kotlin Edition</option><option value="7">B1:Java - Basic Activity Java Edition - for Android Studio 3.x</option><option value="30">B1:Java - Basic Activity Java Edition - for Android Studio 4.x</option><option value="16">B1:Kotlin - Basic Activity Kotlin Edition</option><option value="8">B2:Java - Advanced Widgets Java Edition - for Android Studio 3.x</option><option value="32">B2:Java - Advanced Widgets Java Edition - for Android Studio 4.x</option><option value="17">B2:Kotlin - Advanced Widgets Kotlin Edition</option><option value="4">B3:Java - Multiple Activities Java Edition - for Android Studio 3.x</option><option value="34">B3:Java - Multiple Activities Java Edition - for Android Studio 4.x</option><option value="21">B3:Kotlin - Multiple Activities Kotlin Edition</option><option value="5">B4:Java - Multimedia Resources Java Edition</option><option value="23">B4:Kotlin - Multimedia Resources Kotlin Edition</option><option value="26">C1:Java - Basic Data Storage Java Edition</option></select>
|
|
||||||
-->
|
|
||||||
</div>
|
|
||||||
</form>
|
|
||||||
<div class="row">
|
|
||||||
<div class="col-md-12">
|
|
||||||
<table class="table table-bordered table-hover">
|
|
||||||
<thead>
|
|
||||||
<tr class="text-center">
|
|
||||||
<th></th>
|
|
||||||
<th>Guide Documents</th>
|
|
||||||
<th>Test Files</th>
|
|
||||||
<th>Supplement Files</th>
|
|
||||||
<th>Other Files</th>
|
|
||||||
</tr>
|
|
||||||
</thead>
|
|
||||||
<tbody>
|
|
||||||
<tr>
|
|
||||||
<td>
|
|
||||||
Resource for
|
|
||||||
<b
|
|
||||||
>C2:Java - AsyncTask - for
|
|
||||||
Android Studio </b
|
|
||||||
>
|
|
||||||
</td>
|
|
||||||
<td class="text-center">
|
|
||||||
<div class="btn-group">
|
|
||||||
<div class="btn-group">
|
|
||||||
<a class="btn btn-success" href="{{asset('download/asynctask/GUIDE ASYNCTASK.rar')}}"><i class="fa fa-download"></i> Download</a>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</td>
|
|
||||||
<td class="text-center">
|
|
||||||
<div class="btn-group">
|
|
||||||
<div class="btn-group">
|
|
||||||
<a class="btn btn-warning" href="{{asset('download/asynctask/TEST FILE.rar')}}"><i class="fa fa-download"></i> Download</a>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</td>
|
|
||||||
<td class="text-center">
|
|
||||||
<div class="btn-group">
|
|
||||||
<div class="btn-group">
|
|
||||||
<a class="btn btn-primary" href="{{asset('download/asynctask/SUPLEMENT FILE.rar')}}"><i class="fa fa-download"></i> Download</a>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</td>
|
|
||||||
<td class="text-center">
|
|
||||||
<div class="btn-group">
|
|
||||||
<div class="btn-group">
|
|
||||||
<a class="btn btn-info" href="{{asset('download/asynctask/GUIDE ASYNCTASK.rar')}}"><i class="fa fa-download"></i> Download</a>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
</tbody>
|
|
||||||
</table>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="row">
|
|
||||||
<div class="col-md-12">
|
|
||||||
<table class="table table-bordered table-hover">
|
|
||||||
<thead>
|
|
||||||
<tr class="text-center">
|
|
||||||
<th>Task No.</th>
|
|
||||||
<th>Description</th>
|
|
||||||
<th>Topic Name</th>
|
|
||||||
<th>Show</th>
|
|
||||||
</tr>
|
|
||||||
</thead>
|
|
||||||
<tbody>
|
|
||||||
<tr>
|
|
||||||
<td class="text-center">1</td>
|
|
||||||
<td> Create Layout and Project Configuration</td>
|
|
||||||
<td>
|
|
||||||
C2:Java- AsyncTask Java Edition
|
|
||||||
</td>
|
|
||||||
<td class="text-center">
|
|
||||||
<div class="btn-group">
|
|
||||||
<a
|
|
||||||
class="btn btn-info"
|
|
||||||
href="http://learning.aplas.online/aplas/public/student/tasks/39"
|
|
||||||
><i class="fa fa-eye"></i
|
|
||||||
></a>
|
|
||||||
</div>
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td class="text-center">2</td>
|
|
||||||
<td> Create Layout Activity_Main Image Download </td>
|
|
||||||
<td>
|
|
||||||
C2:Java- AsyncTask Java Edition
|
|
||||||
</td>
|
|
||||||
<td class="text-center">
|
|
||||||
<div class="btn-group">
|
|
||||||
<a
|
|
||||||
class="btn btn-info"
|
|
||||||
href="http://learning.aplas.online/aplas/public/student/tasks/31"
|
|
||||||
><i class="fa fa-eye"></i
|
|
||||||
></a>
|
|
||||||
</div>
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td class="text-center">3</td>
|
|
||||||
<td>Create Layout Activity_Audio Play Music</td>
|
|
||||||
<td>
|
|
||||||
C2:Java- AsyncTask Java Edition
|
|
||||||
</td>
|
|
||||||
<td class="text-center">
|
|
||||||
<div class="btn-group">
|
|
||||||
<a
|
|
||||||
class="btn btn-info"
|
|
||||||
href="http://learning.aplas.online/aplas/public/student/tasks/32"
|
|
||||||
><i class="fa fa-eye"></i
|
|
||||||
></a>
|
|
||||||
</div>
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td class="text-center">4</td>
|
|
||||||
<td>Configuration MainActivity Download Image with AsyncTask</td>
|
|
||||||
<td>
|
|
||||||
C2:Java- AsyncTask Java Edition
|
|
||||||
</td>
|
|
||||||
<td class="text-center">
|
|
||||||
<div class="btn-group">
|
|
||||||
<a
|
|
||||||
class="btn btn-info"
|
|
||||||
href="http://learning.aplas.online/aplas/public/student/tasks/33"
|
|
||||||
><i class="fa fa-eye"></i
|
|
||||||
></a>
|
|
||||||
</div>
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td class="text-center">5</td>
|
|
||||||
<td>Configuration Activity Play Music with AsyncTask</td>
|
|
||||||
<td>
|
|
||||||
C2:Java- AsyncTask Java Edition
|
|
||||||
</td>
|
|
||||||
<td class="text-center">
|
|
||||||
<div class="btn-group">
|
|
||||||
<a
|
|
||||||
class="btn btn-info"
|
|
||||||
href="http://learning.aplas.online/aplas/public/student/tasks/34"
|
|
||||||
><i class="fa fa-eye"></i
|
|
||||||
></a>
|
|
||||||
</div>
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
</div>
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
</tbody>
|
|
||||||
</table>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
@endsection
|
|
||||||
|
|
@ -1,336 +0,0 @@
|
||||||
@extends('student/androidcourse/home')
|
|
||||||
@section('content')
|
|
||||||
<div class="row">
|
|
||||||
<div class="col-12">
|
|
||||||
<div class="card-header">
|
|
||||||
<h3 class="card-title">
|
|
||||||
Start Learning Android Programming with iCLOP
|
|
||||||
</h3>
|
|
||||||
</div>
|
|
||||||
<div class="card-body">
|
|
||||||
<form
|
|
||||||
method="GET"
|
|
||||||
action="http://learning.aplas.online/aplas/public/student/tasks"
|
|
||||||
accept-charset="UTF-8"
|
|
||||||
>
|
|
||||||
<div class="form-group">
|
|
||||||
<label for="topic">Learning Topic:</label>
|
|
||||||
<select
|
|
||||||
class="form-control"
|
|
||||||
id="topicList"
|
|
||||||
onchange="this.form.submit();"
|
|
||||||
name="topicList"
|
|
||||||
>
|
|
||||||
<option value="6" selected="selected">
|
|
||||||
A1:Java - Basic UI Java Edition - for Android Studio
|
|
||||||
3.x
|
|
||||||
</option>
|
|
||||||
<option value="28">
|
|
||||||
A1:Java - Basic UI Java Edition - for Android Studio
|
|
||||||
4.x
|
|
||||||
</option>
|
|
||||||
<option value="15">
|
|
||||||
A1:Kotlin - Basic UI Kotlin Edition
|
|
||||||
</option>
|
|
||||||
<option value="7">
|
|
||||||
B1:Java - Basic Activity Java Edition - for Android
|
|
||||||
Studio 3.x
|
|
||||||
</option>
|
|
||||||
<option value="30">
|
|
||||||
B1:Java - Basic Activity Java Edition - for Android
|
|
||||||
Studio 4.x
|
|
||||||
</option>
|
|
||||||
<option value="16">
|
|
||||||
B1:Kotlin - Basic Activity Kotlin Edition
|
|
||||||
</option>
|
|
||||||
<option value="8">
|
|
||||||
B2:Java - Advanced Widgets Java Edition - for
|
|
||||||
Android Studio 3.x
|
|
||||||
</option>
|
|
||||||
<option value="32">
|
|
||||||
B2:Java - Advanced Widgets Java Edition - for
|
|
||||||
Android Studio 4.x
|
|
||||||
</option>
|
|
||||||
<option value="17">
|
|
||||||
B2:Kotlin - Advanced Widgets Kotlin Edition
|
|
||||||
</option>
|
|
||||||
<option value="4">
|
|
||||||
B3:Java - Multiple Activities Java Edition - for
|
|
||||||
Android Studio 3.x
|
|
||||||
</option>
|
|
||||||
<option value="34">
|
|
||||||
B3:Java - Multiple Activities Java Edition - for
|
|
||||||
Android Studio 4.x
|
|
||||||
</option>
|
|
||||||
<option value="21">
|
|
||||||
B3:Kotlin - Multiple Activities Kotlin Edition
|
|
||||||
</option>
|
|
||||||
<option value="5">
|
|
||||||
B4:Java - Multimedia Resources Java Edition
|
|
||||||
</option>
|
|
||||||
<option value="23">
|
|
||||||
B4:Kotlin - Multimedia Resources Kotlin Edition
|
|
||||||
</option>
|
|
||||||
<option value="26">
|
|
||||||
C1:Java - Basic Data Storage Java Edition
|
|
||||||
</option>
|
|
||||||
</select>
|
|
||||||
<div class="form-group">
|
|
||||||
<label for="description">Description</label>
|
|
||||||
<textarea
|
|
||||||
id="desc"
|
|
||||||
class="form-control"
|
|
||||||
disabled=""
|
|
||||||
rows="2"
|
|
||||||
>
|
|
||||||
Java Edition for Android Studio 3.x
|
|
||||||
This topic contains several material lessons including project properties, layout design using XML and definition and management of resources like drawable, colors, strings and styles. This is an important step in learning Android, where users will start creating Android applications by designing interfaces with XML.
|
|
||||||
(NB: Panduan dalam bahasa Indonesia ada file Others)</textarea
|
|
||||||
>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<!--
|
|
||||||
<label for="topic">Topic:</label>
|
|
||||||
<select class="form-control" onchange="doSomething(this)" id="topic" name="topic"><option value="6">A1:Java - Basic UI Java Edition - for Android Studio 3.x</option><option value="28">A1:Java - Basic UI Java Edition - for Android Studio 4.x</option><option value="15">A1:Kotlin - Basic UI Kotlin Edition</option><option value="7">B1:Java - Basic Activity Java Edition - for Android Studio 3.x</option><option value="30">B1:Java - Basic Activity Java Edition - for Android Studio 4.x</option><option value="16">B1:Kotlin - Basic Activity Kotlin Edition</option><option value="8">B2:Java - Advanced Widgets Java Edition - for Android Studio 3.x</option><option value="32">B2:Java - Advanced Widgets Java Edition - for Android Studio 4.x</option><option value="17">B2:Kotlin - Advanced Widgets Kotlin Edition</option><option value="4">B3:Java - Multiple Activities Java Edition - for Android Studio 3.x</option><option value="34">B3:Java - Multiple Activities Java Edition - for Android Studio 4.x</option><option value="21">B3:Kotlin - Multiple Activities Kotlin Edition</option><option value="5">B4:Java - Multimedia Resources Java Edition</option><option value="23">B4:Kotlin - Multimedia Resources Kotlin Edition</option><option value="26">C1:Java - Basic Data Storage Java Edition</option></select>
|
|
||||||
-->
|
|
||||||
</div>
|
|
||||||
</form>
|
|
||||||
<div class="row">
|
|
||||||
<div class="col-md-12">
|
|
||||||
<table class="table table-bordered table-hover">
|
|
||||||
<thead>
|
|
||||||
<tr class="text-center">
|
|
||||||
<th></th>
|
|
||||||
<th>Guide Documents</th>
|
|
||||||
<th>Test Files</th>
|
|
||||||
<th>Supplement Files</th>
|
|
||||||
<th>Other Files</th>
|
|
||||||
</tr>
|
|
||||||
</thead>
|
|
||||||
<tbody>
|
|
||||||
<tr>
|
|
||||||
<td>
|
|
||||||
Resource for
|
|
||||||
<b
|
|
||||||
>A1:Java - Basic UI Java Edition - for
|
|
||||||
Android Studio 3.x</b
|
|
||||||
>
|
|
||||||
</td>
|
|
||||||
<td class="text-center">
|
|
||||||
<div class="btn-group">
|
|
||||||
<a
|
|
||||||
class="btn btn-success"
|
|
||||||
href="http://learning.aplas.online/aplas/public/download/guide/hZjj0c869MhrdzSSGWQAtgLbkvdkRSnlXj8lwHPw.zip/A1:Java-BasicUIJavaEdition-forAndroidStudio3.x"
|
|
||||||
><i class="fa fa-download"></i
|
|
||||||
> Download</a
|
|
||||||
>
|
|
||||||
</div>
|
|
||||||
</td>
|
|
||||||
<td class="text-center">
|
|
||||||
<div class="btn-group">
|
|
||||||
<a
|
|
||||||
class="btn btn-warning"
|
|
||||||
href="http://learning.aplas.online/aplas/public/download/test/U9nBOg4RkEqocQ0iJv52iEkmGaCeS6GpiXnnmeJc.zip/A1:Java-BasicUIJavaEdition-forAndroidStudio3.x"
|
|
||||||
><i class="fa fa-download"></i
|
|
||||||
> Download</a
|
|
||||||
>
|
|
||||||
</div>
|
|
||||||
</td>
|
|
||||||
<td class="text-center">
|
|
||||||
<div class="btn-group">
|
|
||||||
<a
|
|
||||||
class="btn btn-primary"
|
|
||||||
href="http://learning.aplas.online/aplas/public/download/supp/UxgFVP2PZ5Weo3y9XYXGNMKlCQ6CGLHKl3mDHKv6.zip/A1:Java-BasicUIJavaEdition-forAndroidStudio3.x"
|
|
||||||
><i class="fa fa-download"></i
|
|
||||||
> Download</a
|
|
||||||
>
|
|
||||||
</div>
|
|
||||||
</td>
|
|
||||||
<td class="text-center">
|
|
||||||
<div class="btn-group">
|
|
||||||
<a
|
|
||||||
class="btn btn-info"
|
|
||||||
href="http://learning.aplas.online/aplas/public/download/other/fGmOJ5QWh79TRZxN8gMLBhCAvDAnuxdKuiZzv6D0.zip/A1:Java-BasicUIJavaEdition-forAndroidStudio3.x"
|
|
||||||
><i class="fa fa-download"></i
|
|
||||||
> Download</a
|
|
||||||
>
|
|
||||||
</div>
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
</tbody>
|
|
||||||
</table>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="row">
|
|
||||||
<div class="col-md-12">
|
|
||||||
<table class="table table-bordered table-hover">
|
|
||||||
<thead>
|
|
||||||
<tr class="text-center">
|
|
||||||
<th>Task No.</th>
|
|
||||||
<th>Description</th>
|
|
||||||
<th>Topic Name</th>
|
|
||||||
<th>Show</th>
|
|
||||||
</tr>
|
|
||||||
</thead>
|
|
||||||
<tbody>
|
|
||||||
<tr>
|
|
||||||
<td class="text-center">1</td>
|
|
||||||
<td>Project Configuration</td>
|
|
||||||
<td>
|
|
||||||
A1:Java - Basic UI Java Edition - for
|
|
||||||
Android Studio 3.x
|
|
||||||
</td>
|
|
||||||
<td class="text-center">
|
|
||||||
<div class="btn-group">
|
|
||||||
<a
|
|
||||||
class="btn btn-info"
|
|
||||||
href="http://learning.aplas.online/aplas/public/student/tasks/39"
|
|
||||||
><i class="fa fa-eye"></i
|
|
||||||
></a>
|
|
||||||
</div>
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td class="text-center">2</td>
|
|
||||||
<td>Resource configuration</td>
|
|
||||||
<td>
|
|
||||||
A1:Java - Basic UI Java Edition - for
|
|
||||||
Android Studio 3.x
|
|
||||||
</td>
|
|
||||||
<td class="text-center">
|
|
||||||
<div class="btn-group">
|
|
||||||
<a
|
|
||||||
class="btn btn-info"
|
|
||||||
href="http://learning.aplas.online/aplas/public/student/tasks/31"
|
|
||||||
><i class="fa fa-eye"></i
|
|
||||||
></a>
|
|
||||||
</div>
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td class="text-center">3</td>
|
|
||||||
<td>Main layout, textview, button</td>
|
|
||||||
<td>
|
|
||||||
A1:Java - Basic UI Java Edition - for
|
|
||||||
Android Studio 3.x
|
|
||||||
</td>
|
|
||||||
<td class="text-center">
|
|
||||||
<div class="btn-group">
|
|
||||||
<a
|
|
||||||
class="btn btn-info"
|
|
||||||
href="http://learning.aplas.online/aplas/public/student/tasks/32"
|
|
||||||
><i class="fa fa-eye"></i
|
|
||||||
></a>
|
|
||||||
</div>
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td class="text-center">4</td>
|
|
||||||
<td>Space and Child layout</td>
|
|
||||||
<td>
|
|
||||||
A1:Java - Basic UI Java Edition - for
|
|
||||||
Android Studio 3.x
|
|
||||||
</td>
|
|
||||||
<td class="text-center">
|
|
||||||
<div class="btn-group">
|
|
||||||
<a
|
|
||||||
class="btn btn-info"
|
|
||||||
href="http://learning.aplas.online/aplas/public/student/tasks/33"
|
|
||||||
><i class="fa fa-eye"></i
|
|
||||||
></a>
|
|
||||||
</div>
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td class="text-center">5</td>
|
|
||||||
<td>String-array, EditText, Spinner</td>
|
|
||||||
<td>
|
|
||||||
A1:Java - Basic UI Java Edition - for
|
|
||||||
Android Studio 3.x
|
|
||||||
</td>
|
|
||||||
<td class="text-center">
|
|
||||||
<div class="btn-group">
|
|
||||||
<a
|
|
||||||
class="btn btn-info"
|
|
||||||
href="http://learning.aplas.online/aplas/public/student/tasks/34"
|
|
||||||
><i class="fa fa-eye"></i
|
|
||||||
></a>
|
|
||||||
</div>
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td class="text-center">6</td>
|
|
||||||
<td>Checkbox</td>
|
|
||||||
<td>
|
|
||||||
A1:Java - Basic UI Java Edition - for
|
|
||||||
Android Studio 3.x
|
|
||||||
</td>
|
|
||||||
<td class="text-center">
|
|
||||||
<div class="btn-group">
|
|
||||||
<a
|
|
||||||
class="btn btn-info"
|
|
||||||
href="http://learning.aplas.online/aplas/public/student/tasks/35"
|
|
||||||
><i class="fa fa-eye"></i
|
|
||||||
></a>
|
|
||||||
</div>
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td class="text-center">7</td>
|
|
||||||
<td>RadioGroup</td>
|
|
||||||
<td>
|
|
||||||
A1:Java - Basic UI Java Edition - for
|
|
||||||
Android Studio 3.x
|
|
||||||
</td>
|
|
||||||
<td class="text-center">
|
|
||||||
<div class="btn-group">
|
|
||||||
<a
|
|
||||||
class="btn btn-info"
|
|
||||||
href="http://learning.aplas.online/aplas/public/student/tasks/36"
|
|
||||||
><i class="fa fa-eye"></i
|
|
||||||
></a>
|
|
||||||
</div>
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td class="text-center">8</td>
|
|
||||||
<td>Image resource and ImageView</td>
|
|
||||||
<td>
|
|
||||||
A1:Java - Basic UI Java Edition - for
|
|
||||||
Android Studio 3.x
|
|
||||||
</td>
|
|
||||||
<td class="text-center">
|
|
||||||
<div class="btn-group">
|
|
||||||
<a
|
|
||||||
class="btn btn-info"
|
|
||||||
href="http://learning.aplas.online/aplas/public/student/tasks/37"
|
|
||||||
><i class="fa fa-eye"></i
|
|
||||||
></a>
|
|
||||||
</div>
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td class="text-center">9</td>
|
|
||||||
<td>Drawable resource and Table layout</td>
|
|
||||||
<td>
|
|
||||||
A1:Java - Basic UI Java Edition - for
|
|
||||||
Android Studio 3.x
|
|
||||||
</td>
|
|
||||||
<td class="text-center">
|
|
||||||
<div class="btn-group">
|
|
||||||
<a
|
|
||||||
class="btn btn-info"
|
|
||||||
href="http://learning.aplas.online/aplas/public/student/tasks/38"
|
|
||||||
><i class="fa fa-eye"></i
|
|
||||||
></a>
|
|
||||||
</div>
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
</tbody>
|
|
||||||
</table>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
@endsection
|
|
||||||
|
|
@ -1,286 +0,0 @@
|
||||||
@extends('student/androidcourse/home')
|
|
||||||
@section('content')
|
|
||||||
<div class="row">
|
|
||||||
<div class="col-12">
|
|
||||||
<div class="card-header">
|
|
||||||
<h3 class="card-title">
|
|
||||||
Start Learning Android Programming with iCLOP
|
|
||||||
</h3>
|
|
||||||
</div>
|
|
||||||
<div class="card-body">
|
|
||||||
<form
|
|
||||||
method="GET"
|
|
||||||
action="http://learning.aplas.online/aplas/public/student/tasks"
|
|
||||||
accept-charset="UTF-8"
|
|
||||||
>
|
|
||||||
<div class="form-group">
|
|
||||||
<label for="topic">Learning Topic:</label>
|
|
||||||
<select
|
|
||||||
class="form-control"
|
|
||||||
id="topicList"
|
|
||||||
onchange="this.form.submit();"
|
|
||||||
name="topicList"
|
|
||||||
>
|
|
||||||
<option value="6" selected="selected">
|
|
||||||
A3:Android Java - Firebase - for Android Studio
|
|
||||||
|
|
||||||
</option>
|
|
||||||
</select>
|
|
||||||
<div class="form-group">
|
|
||||||
<label for="description">Description</label>
|
|
||||||
<textarea
|
|
||||||
id="desc"
|
|
||||||
class="form-control"
|
|
||||||
disabled=""
|
|
||||||
rows="2"
|
|
||||||
>
|
|
||||||
Java Edition for Android Studio
|
|
||||||
This topic contains learning about Firebase
|
|
||||||
</textarea
|
|
||||||
>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<!--
|
|
||||||
<label for="topic">Topic:</label>
|
|
||||||
<select class="form-control" onchange="doSomething(this)" id="topic" name="topic"><option value="6">A1:Java - Basic UI Java Edition - for Android Studio 3.x</option><option value="28">A1:Java - Basic UI Java Edition - for Android Studio 4.x</option><option value="15">A1:Kotlin - Basic UI Kotlin Edition</option><option value="7">B1:Java - Basic Activity Java Edition - for Android Studio 3.x</option><option value="30">B1:Java - Basic Activity Java Edition - for Android Studio 4.x</option><option value="16">B1:Kotlin - Basic Activity Kotlin Edition</option><option value="8">B2:Java - Advanced Widgets Java Edition - for Android Studio 3.x</option><option value="32">B2:Java - Advanced Widgets Java Edition - for Android Studio 4.x</option><option value="17">B2:Kotlin - Advanced Widgets Kotlin Edition</option><option value="4">B3:Java - Multiple Activities Java Edition - for Android Studio 3.x</option><option value="34">B3:Java - Multiple Activities Java Edition - for Android Studio 4.x</option><option value="21">B3:Kotlin - Multiple Activities Kotlin Edition</option><option value="5">B4:Java - Multimedia Resources Java Edition</option><option value="23">B4:Kotlin - Multimedia Resources Kotlin Edition</option><option value="26">C1:Java - Basic Data Storage Java Edition</option></select>
|
|
||||||
-->
|
|
||||||
</div>
|
|
||||||
</form>
|
|
||||||
<div class="row">
|
|
||||||
<div class="col-md-12">
|
|
||||||
<table class="table table-bordered table-hover">
|
|
||||||
<thead>
|
|
||||||
<tr class="text-center">
|
|
||||||
<th></th>
|
|
||||||
<th>Guide Documents</th>
|
|
||||||
<th>Test Files</th>
|
|
||||||
<th>Supplement Files</th>
|
|
||||||
<th>Other Files</th>
|
|
||||||
</tr>
|
|
||||||
</thead>
|
|
||||||
<tbody>
|
|
||||||
<tr>
|
|
||||||
<td>
|
|
||||||
Resource for
|
|
||||||
<b
|
|
||||||
>A3:Java - Firebase - for
|
|
||||||
Android Studio </b
|
|
||||||
>
|
|
||||||
</td>
|
|
||||||
<td class="text-center">
|
|
||||||
<div class="btn-group">
|
|
||||||
<div class="btn-group">
|
|
||||||
<a class="btn btn-success" href="{{asset('download/firebase/GUIDE_FIREBASE.rar')}}"><i class="fa fa-download"></i> Download</a>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</td>
|
|
||||||
<td class="text-center">
|
|
||||||
<div class="btn-group">
|
|
||||||
<div class="btn-group">
|
|
||||||
<a class="btn btn-warning" href="{{asset('download/firebase/test-file.rar')}}"><i class="fa fa-download"></i> Download</a>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</td>
|
|
||||||
<td class="text-center">
|
|
||||||
<div class="btn-group">
|
|
||||||
<div class="btn-group">
|
|
||||||
<a class="btn btn-primary" href="{{asset('download/firebase/suplement-file.rar')}}"><i class="fa fa-download"></i> Download</a>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</td>
|
|
||||||
<td class="text-center">
|
|
||||||
<div class="btn-group">
|
|
||||||
<div class="btn-group">
|
|
||||||
<a class="btn btn-info" href="{{asset('download/firebase/GUIDE ASYNCTASK.rar')}}"><i class="fa fa-download"></i> Download</a>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
</tbody>
|
|
||||||
</table>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="row">
|
|
||||||
<div class="col-md-12">
|
|
||||||
<table class="table table-bordered table-hover">
|
|
||||||
<thead>
|
|
||||||
<tr class="text-center">
|
|
||||||
<th>Task No.</th>
|
|
||||||
<th>Description</th>
|
|
||||||
<th>Topic Name</th>
|
|
||||||
<th>Show</th>
|
|
||||||
</tr>
|
|
||||||
</thead>
|
|
||||||
<tbody>
|
|
||||||
<tr>
|
|
||||||
<td class="text-center">1</td>
|
|
||||||
<td>Firebase Configuration</td>
|
|
||||||
<td>
|
|
||||||
C3:Java - Firebase Java Edition
|
|
||||||
</td>
|
|
||||||
<td class="text-center">
|
|
||||||
<div class="btn-group">
|
|
||||||
<a
|
|
||||||
class="btn btn-info"
|
|
||||||
href="http://learning.aplas.online/aplas/public/student/tasks/39"
|
|
||||||
><i class="fa fa-eye"></i
|
|
||||||
></a>
|
|
||||||
</div>
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td class="text-center">2</td>
|
|
||||||
<td>Create Register Activity</td>
|
|
||||||
<td>
|
|
||||||
C3:Java - Firebase Java Edition
|
|
||||||
</td>
|
|
||||||
<td class="text-center">
|
|
||||||
<div class="btn-group">
|
|
||||||
<a
|
|
||||||
class="btn btn-info"
|
|
||||||
href="http://learning.aplas.online/aplas/public/student/tasks/31"
|
|
||||||
><i class="fa fa-eye"></i
|
|
||||||
></a>
|
|
||||||
</div>
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td class="text-center">3</td>
|
|
||||||
<td>Create Login Activity</td>
|
|
||||||
<td>
|
|
||||||
C3:Java - CFirebase Java Edition
|
|
||||||
</td>
|
|
||||||
<td class="text-center">
|
|
||||||
<div class="btn-group">
|
|
||||||
<a
|
|
||||||
class="btn btn-info"
|
|
||||||
href="http://learning.aplas.online/aplas/public/student/tasks/32"
|
|
||||||
><i class="fa fa-eye"></i
|
|
||||||
></a>
|
|
||||||
</div>
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td class="text-center">4</td>
|
|
||||||
<td>Desain UI Seller Home and develope Seller Home Activity</td>
|
|
||||||
<td>
|
|
||||||
C3:Java - Firebase Java Edition
|
|
||||||
</td>
|
|
||||||
<td class="text-center">
|
|
||||||
<div class="btn-group">
|
|
||||||
<a
|
|
||||||
class="btn btn-info"
|
|
||||||
href="http://learning.aplas.online/aplas/public/student/tasks/33"
|
|
||||||
><i class="fa fa-eye"></i
|
|
||||||
></a>
|
|
||||||
</div>
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td class="text-center">5</td>
|
|
||||||
<td>Desain UI Seller Home AddProduct and Develope Seller Home</td>
|
|
||||||
<td>
|
|
||||||
C3:Java - Firebase Java Edition
|
|
||||||
</td>
|
|
||||||
<td class="text-center">
|
|
||||||
<div class="btn-group">
|
|
||||||
<a
|
|
||||||
class="btn btn-info"
|
|
||||||
href="http://learning.aplas.online/aplas/public/student/tasks/34"
|
|
||||||
><i class="fa fa-eye"></i
|
|
||||||
></a>
|
|
||||||
</div>
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td class="text-center">6</td>
|
|
||||||
<td>Desain UI Seller Home Detail Product dan Develop Seller Home Detail Product Activity</td>
|
|
||||||
<td>
|
|
||||||
C3:Java - Firebase Java Edition
|
|
||||||
</td>
|
|
||||||
<td class="text-center">
|
|
||||||
<div class="btn-group">
|
|
||||||
<a
|
|
||||||
class="btn btn-info"
|
|
||||||
href="http://learning.aplas.online/aplas/public/student/tasks/34"
|
|
||||||
><i class="fa fa-eye"></i
|
|
||||||
></a>
|
|
||||||
</div>
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td class="text-center">7</td>
|
|
||||||
<td>Desain UI Buyer Home dan Develop Buyer Home Activity</td>
|
|
||||||
<td>
|
|
||||||
C3:Java - Firebase Java Edition
|
|
||||||
</td>
|
|
||||||
<td class="text-center">
|
|
||||||
<div class="btn-group">
|
|
||||||
<a
|
|
||||||
class="btn btn-info"
|
|
||||||
href="http://learning.aplas.online/aplas/public/student/tasks/34"
|
|
||||||
><i class="fa fa-eye"></i
|
|
||||||
></a>
|
|
||||||
</div>
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td class="text-center">8</td>
|
|
||||||
<td>Desain UI Buyer Home Detail Productdan Develop Buyer Home Detail ProductActivity</td>
|
|
||||||
<td>
|
|
||||||
C3:Java - Firebase Java Edition
|
|
||||||
</td>
|
|
||||||
<td class="text-center">
|
|
||||||
<div class="btn-group">
|
|
||||||
<a
|
|
||||||
class="btn btn-info"
|
|
||||||
href="http://learning.aplas.online/aplas/public/student/tasks/34"
|
|
||||||
><i class="fa fa-eye"></i
|
|
||||||
></a>
|
|
||||||
</div>
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td class="text-center">9</td>
|
|
||||||
<td>Desain UI Cart dan Develop Cart Activity</td>
|
|
||||||
<td>
|
|
||||||
C3:Java - Firebase Java Edition
|
|
||||||
</td>
|
|
||||||
<td class="text-center">
|
|
||||||
<div class="btn-group">
|
|
||||||
<a
|
|
||||||
class="btn btn-info"
|
|
||||||
href="http://learning.aplas.online/aplas/public/student/tasks/34"
|
|
||||||
><i class="fa fa-eye"></i
|
|
||||||
></a>
|
|
||||||
</div>
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td class="text-center">10</td>
|
|
||||||
<td>Desain UI Detail Cart dan Develop Detail Cart Activity</td>
|
|
||||||
<td>
|
|
||||||
C3:Java - Firebase Java Edition
|
|
||||||
</td>
|
|
||||||
<td class="text-center">
|
|
||||||
<div class="btn-group">
|
|
||||||
<a
|
|
||||||
class="btn btn-info"
|
|
||||||
href="http://learning.aplas.online/aplas/public/student/tasks/34"
|
|
||||||
><i class="fa fa-eye"></i
|
|
||||||
></a>
|
|
||||||
</div>
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
</div>
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
</tbody>
|
|
||||||
</table>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
@endsection
|
|
||||||
|
|
@ -1,286 +0,0 @@
|
||||||
@extends('student/androidcourse/home')
|
|
||||||
@section('content')
|
|
||||||
<div class="row">
|
|
||||||
<div class="col-12">
|
|
||||||
<div class="card-header">
|
|
||||||
<h3 class="card-title">
|
|
||||||
Start Learning Android Programming with iCLOP
|
|
||||||
</h3>
|
|
||||||
</div>
|
|
||||||
<div class="card-body">
|
|
||||||
<form
|
|
||||||
method="GET"
|
|
||||||
action="http://learning.aplas.online/aplas/public/student/tasks"
|
|
||||||
accept-charset="UTF-8"
|
|
||||||
>
|
|
||||||
<div class="form-group">
|
|
||||||
<label for="topic">Learning Topic:</label>
|
|
||||||
<select
|
|
||||||
class="form-control"
|
|
||||||
id="topicList"
|
|
||||||
onchange="this.form.submit();"
|
|
||||||
name="topicList"
|
|
||||||
>
|
|
||||||
<option value="6" selected="selected">
|
|
||||||
A3:Android Java - Firebase - for Android Studio
|
|
||||||
|
|
||||||
</option>
|
|
||||||
</select>
|
|
||||||
<div class="form-group">
|
|
||||||
<label for="description">Description</label>
|
|
||||||
<textarea
|
|
||||||
id="desc"
|
|
||||||
class="form-control"
|
|
||||||
disabled=""
|
|
||||||
rows="2"
|
|
||||||
>
|
|
||||||
Java Edition for Android Studio
|
|
||||||
This topic contains learning about Firebase
|
|
||||||
</textarea
|
|
||||||
>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<!--
|
|
||||||
<label for="topic">Topic:</label>
|
|
||||||
<select class="form-control" onchange="doSomething(this)" id="topic" name="topic"><option value="6">A1:Java - Basic UI Java Edition - for Android Studio 3.x</option><option value="28">A1:Java - Basic UI Java Edition - for Android Studio 4.x</option><option value="15">A1:Kotlin - Basic UI Kotlin Edition</option><option value="7">B1:Java - Basic Activity Java Edition - for Android Studio 3.x</option><option value="30">B1:Java - Basic Activity Java Edition - for Android Studio 4.x</option><option value="16">B1:Kotlin - Basic Activity Kotlin Edition</option><option value="8">B2:Java - Advanced Widgets Java Edition - for Android Studio 3.x</option><option value="32">B2:Java - Advanced Widgets Java Edition - for Android Studio 4.x</option><option value="17">B2:Kotlin - Advanced Widgets Kotlin Edition</option><option value="4">B3:Java - Multiple Activities Java Edition - for Android Studio 3.x</option><option value="34">B3:Java - Multiple Activities Java Edition - for Android Studio 4.x</option><option value="21">B3:Kotlin - Multiple Activities Kotlin Edition</option><option value="5">B4:Java - Multimedia Resources Java Edition</option><option value="23">B4:Kotlin - Multimedia Resources Kotlin Edition</option><option value="26">C1:Java - Basic Data Storage Java Edition</option></select>
|
|
||||||
-->
|
|
||||||
</div>
|
|
||||||
</form>
|
|
||||||
<div class="row">
|
|
||||||
<div class="col-md-12">
|
|
||||||
<table class="table table-bordered table-hover">
|
|
||||||
<thead>
|
|
||||||
<tr class="text-center">
|
|
||||||
<th></th>
|
|
||||||
<th>Guide Documents</th>
|
|
||||||
<th>Test Files</th>
|
|
||||||
<th>Supplement Files</th>
|
|
||||||
<th>Other Files</th>
|
|
||||||
</tr>
|
|
||||||
</thead>
|
|
||||||
<tbody>
|
|
||||||
<tr>
|
|
||||||
<td>
|
|
||||||
Resource for
|
|
||||||
<b
|
|
||||||
>A3:Java - Firebase - for
|
|
||||||
Android Studio </b
|
|
||||||
>
|
|
||||||
</td>
|
|
||||||
<td class="text-center">
|
|
||||||
<div class="btn-group">
|
|
||||||
<div class="btn-group">
|
|
||||||
<a class="btn btn-success" href="{{asset('download/firebase/GUIDE_FIREBASE.rar')}}"><i class="fa fa-download"></i> Download</a>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</td>
|
|
||||||
<td class="text-center">
|
|
||||||
<div class="btn-group">
|
|
||||||
<div class="btn-group">
|
|
||||||
<a class="btn btn-warning" href="{{asset('download/firebase/test-file.rar')}}"><i class="fa fa-download"></i> Download</a>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</td>
|
|
||||||
<td class="text-center">
|
|
||||||
<div class="btn-group">
|
|
||||||
<div class="btn-group">
|
|
||||||
<a class="btn btn-primary" href="{{asset('download/firebase/suplement-file.rar')}}"><i class="fa fa-download"></i> Download</a>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</td>
|
|
||||||
<td class="text-center">
|
|
||||||
<div class="btn-group">
|
|
||||||
<div class="btn-group">
|
|
||||||
<a class="btn btn-info" href="{{asset('download/firebase/GUIDE ASYNCTASK.rar')}}"><i class="fa fa-download"></i> Download</a>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
</tbody>
|
|
||||||
</table>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="row">
|
|
||||||
<div class="col-md-12">
|
|
||||||
<table class="table table-bordered table-hover">
|
|
||||||
<thead>
|
|
||||||
<tr class="text-center">
|
|
||||||
<th>Task No.</th>
|
|
||||||
<th>Description</th>
|
|
||||||
<th>Topic Name</th>
|
|
||||||
<th>Show</th>
|
|
||||||
</tr>
|
|
||||||
</thead>
|
|
||||||
<tbody>
|
|
||||||
<tr>
|
|
||||||
<td class="text-center">1</td>
|
|
||||||
<td>Firebase Configuration</td>
|
|
||||||
<td>
|
|
||||||
C3:Java - Firebase Java Edition
|
|
||||||
</td>
|
|
||||||
<td class="text-center">
|
|
||||||
<div class="btn-group">
|
|
||||||
<a
|
|
||||||
class="btn btn-info"
|
|
||||||
href="http://learning.aplas.online/aplas/public/student/tasks/39"
|
|
||||||
><i class="fa fa-eye"></i
|
|
||||||
></a>
|
|
||||||
</div>
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td class="text-center">2</td>
|
|
||||||
<td>Create Register Activity</td>
|
|
||||||
<td>
|
|
||||||
C3:Java - Firebase Java Edition
|
|
||||||
</td>
|
|
||||||
<td class="text-center">
|
|
||||||
<div class="btn-group">
|
|
||||||
<a
|
|
||||||
class="btn btn-info"
|
|
||||||
href="http://learning.aplas.online/aplas/public/student/tasks/31"
|
|
||||||
><i class="fa fa-eye"></i
|
|
||||||
></a>
|
|
||||||
</div>
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td class="text-center">3</td>
|
|
||||||
<td>Create Login Activity</td>
|
|
||||||
<td>
|
|
||||||
C3:Java - CFirebase Java Edition
|
|
||||||
</td>
|
|
||||||
<td class="text-center">
|
|
||||||
<div class="btn-group">
|
|
||||||
<a
|
|
||||||
class="btn btn-info"
|
|
||||||
href="http://learning.aplas.online/aplas/public/student/tasks/32"
|
|
||||||
><i class="fa fa-eye"></i
|
|
||||||
></a>
|
|
||||||
</div>
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td class="text-center">4</td>
|
|
||||||
<td>Desain UI Seller Home and develope Seller Home Activity</td>
|
|
||||||
<td>
|
|
||||||
C3:Java - Firebase Java Edition
|
|
||||||
</td>
|
|
||||||
<td class="text-center">
|
|
||||||
<div class="btn-group">
|
|
||||||
<a
|
|
||||||
class="btn btn-info"
|
|
||||||
href="http://learning.aplas.online/aplas/public/student/tasks/33"
|
|
||||||
><i class="fa fa-eye"></i
|
|
||||||
></a>
|
|
||||||
</div>
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td class="text-center">5</td>
|
|
||||||
<td>Desain UI Seller Home AddProduct and Develope Seller Home</td>
|
|
||||||
<td>
|
|
||||||
C3:Java - Firebase Java Edition
|
|
||||||
</td>
|
|
||||||
<td class="text-center">
|
|
||||||
<div class="btn-group">
|
|
||||||
<a
|
|
||||||
class="btn btn-info"
|
|
||||||
href="http://learning.aplas.online/aplas/public/student/tasks/34"
|
|
||||||
><i class="fa fa-eye"></i
|
|
||||||
></a>
|
|
||||||
</div>
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td class="text-center">6</td>
|
|
||||||
<td>Desain UI Seller Home Detail Product dan Develop Seller Home Detail Product Activity</td>
|
|
||||||
<td>
|
|
||||||
C3:Java - Firebase Java Edition
|
|
||||||
</td>
|
|
||||||
<td class="text-center">
|
|
||||||
<div class="btn-group">
|
|
||||||
<a
|
|
||||||
class="btn btn-info"
|
|
||||||
href="http://learning.aplas.online/aplas/public/student/tasks/34"
|
|
||||||
><i class="fa fa-eye"></i
|
|
||||||
></a>
|
|
||||||
</div>
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td class="text-center">7</td>
|
|
||||||
<td>Desain UI Buyer Home dan Develop Buyer Home Activity</td>
|
|
||||||
<td>
|
|
||||||
C3:Java - Firebase Java Edition
|
|
||||||
</td>
|
|
||||||
<td class="text-center">
|
|
||||||
<div class="btn-group">
|
|
||||||
<a
|
|
||||||
class="btn btn-info"
|
|
||||||
href="http://learning.aplas.online/aplas/public/student/tasks/34"
|
|
||||||
><i class="fa fa-eye"></i
|
|
||||||
></a>
|
|
||||||
</div>
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td class="text-center">8</td>
|
|
||||||
<td>Desain UI Buyer Home Detail Productdan Develop Buyer Home Detail ProductActivity</td>
|
|
||||||
<td>
|
|
||||||
C3:Java - Firebase Java Edition
|
|
||||||
</td>
|
|
||||||
<td class="text-center">
|
|
||||||
<div class="btn-group">
|
|
||||||
<a
|
|
||||||
class="btn btn-info"
|
|
||||||
href="http://learning.aplas.online/aplas/public/student/tasks/34"
|
|
||||||
><i class="fa fa-eye"></i
|
|
||||||
></a>
|
|
||||||
</div>
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td class="text-center">9</td>
|
|
||||||
<td>Desain UI Cart dan Develop Cart Activity</td>
|
|
||||||
<td>
|
|
||||||
C3:Java - Firebase Java Edition
|
|
||||||
</td>
|
|
||||||
<td class="text-center">
|
|
||||||
<div class="btn-group">
|
|
||||||
<a
|
|
||||||
class="btn btn-info"
|
|
||||||
href="http://learning.aplas.online/aplas/public/student/tasks/34"
|
|
||||||
><i class="fa fa-eye"></i
|
|
||||||
></a>
|
|
||||||
</div>
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td class="text-center">10</td>
|
|
||||||
<td>Desain UI Detail Cart dan Develop Detail Cart Activity</td>
|
|
||||||
<td>
|
|
||||||
C3:Java - Firebase Java Edition
|
|
||||||
</td>
|
|
||||||
<td class="text-center">
|
|
||||||
<div class="btn-group">
|
|
||||||
<a
|
|
||||||
class="btn btn-info"
|
|
||||||
href="http://learning.aplas.online/aplas/public/student/tasks/34"
|
|
||||||
><i class="fa fa-eye"></i
|
|
||||||
></a>
|
|
||||||
</div>
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
</div>
|
|
||||||
</td>
|
|
||||||
</tr>
|
|
||||||
</tbody>
|
|
||||||
</table>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
@endsection
|
|
||||||
|
|
@ -4,5 +4,5 @@
|
||||||
Login as {{ Auth::user()->roleid }}
|
Login as {{ Auth::user()->roleid }}
|
||||||
</div>
|
</div>
|
||||||
<!-- Default to the left -->
|
<!-- Default to the left -->
|
||||||
<strong>Copyright © 2020 <a href="https://aplas.org">Android Programming Learning Assistance System (APLAS)</a>.</strong> All rights reserved.
|
<strong>Copyright © 2022 <a href="http://learning.aplas.online/iclop/">Intelligent Computer Assisted Programming Learning Platform(iCLOP)</a>.</strong> All rights reserved.
|
||||||
</footer>
|
</footer>
|
||||||
|
|
|
||||||
|
|
@ -1,18 +1,13 @@
|
||||||
<nav class="main-header navbar navbar-expand navbar-white navbar-light" style="background-color: wheat;">
|
<nav class="main-header navbar navbar-expand navbar-white navbar-light" style="background-color: lavender;">
|
||||||
<!-- Left navbar links -->
|
<!-- Left navbar links -->
|
||||||
|
|
||||||
<ul class="navbar-nav">
|
<ul class="navbar-nav" style="font-size:120%;">
|
||||||
<li class="nav-item">
|
<li class="nav-item">
|
||||||
<a class="nav-link" data-widget="pushmenu" href="#"><i class="fas fa-bars"></i></a>
|
<a class="nav-link" data-widget="pushmenu" href="#"><i class="fas fa-bars"></i></a>
|
||||||
</li>
|
</li>
|
||||||
<li class="nav-item d-none d-sm-inline-block">
|
<li class="nav-item d-none d-sm-inline-block">
|
||||||
<a href="{{URL::to('student')}}" class="nav-link">Home</a>
|
<a href="{{URL::to('home')}}" class="nav-link">Home</a>
|
||||||
</li>
|
</li>
|
||||||
<!--
|
|
||||||
<li class="nav-item d-none d-sm-inline-block">
|
|
||||||
<a href="#" class="nav-link">Contact</a>
|
|
||||||
</li>
|
|
||||||
-->
|
|
||||||
<li class="nav-item">
|
<li class="nav-item">
|
||||||
<a href="{{ route('logout')}}" class="nav-link"
|
<a href="{{ route('logout')}}" class="nav-link"
|
||||||
onclick="event.preventDefault(); document.getElementById('logout-form').submit();">
|
onclick="event.preventDefault(); document.getElementById('logout-form').submit();">
|
||||||
|
|
@ -26,18 +21,4 @@
|
||||||
</li>
|
</li>
|
||||||
</ul>
|
</ul>
|
||||||
|
|
||||||
<!-- SEARCH FORM
|
|
||||||
<form class="form-inline ml-3">
|
|
||||||
<div class="input-group input-group-sm">
|
|
||||||
<input class="form-control form-control-navbar" type="search" placeholder="Search" aria-label="Search">
|
|
||||||
<div class="input-group-append">
|
|
||||||
<button class="btn btn-navbar" type="submit">
|
|
||||||
<i class="fas fa-search"></i>
|
|
||||||
</button>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</form>
|
|
||||||
-->
|
|
||||||
|
|
||||||
|
|
||||||
</nav>
|
</nav>
|
||||||
|
|
|
||||||
|
|
@ -1,84 +0,0 @@
|
||||||
<!DOCTYPE html>
|
|
||||||
<!--
|
|
||||||
This is a starter template page. Use this page to start your new project from
|
|
||||||
scratch. This page gets rid of all links and provides the needed markup only.
|
|
||||||
-->
|
|
||||||
<html lang="en">
|
|
||||||
<head>
|
|
||||||
<meta charset="utf-8">
|
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
|
||||||
<meta http-equiv="x-ua-compatible" content="ie=edge">
|
|
||||||
|
|
||||||
<title>iCLOP - Administrator Site</title>
|
|
||||||
|
|
||||||
<!-- Font Awesome Icons -->
|
|
||||||
<link rel="stylesheet" href="{{asset('lte/plugins/fontawesome-free/css/all.min.css')}}">
|
|
||||||
<!-- Theme style -->
|
|
||||||
<link rel="stylesheet" href="{{asset('lte/dist/css/adminlte.min.css')}}">
|
|
||||||
<!-- Google Font: Source Sans Pro -->
|
|
||||||
<link href="https://fonts.googleapis.com/css?family=Source+Sans+Pro:300,400,400i,700" rel="stylesheet">
|
|
||||||
</head>
|
|
||||||
<body class="hold-transition sidebar-mini">
|
|
||||||
<div class="wrapper">
|
|
||||||
|
|
||||||
<!-- Navbar -->
|
|
||||||
@include('student/header')
|
|
||||||
<!-- /.navbar -->
|
|
||||||
|
|
||||||
<!-- Main Sidebar Container -->
|
|
||||||
@include('student/sidebar')
|
|
||||||
|
|
||||||
<!-- Content Wrapper. Contains page content -->
|
|
||||||
<div class="content-wrapper">
|
|
||||||
<!-- Content Header (Page header) -->
|
|
||||||
|
|
||||||
<!-- /.content-header -->
|
|
||||||
|
|
||||||
<!-- Main content -->
|
|
||||||
@yield('content')
|
|
||||||
<!-- /.content -->
|
|
||||||
@if (isset($count))
|
|
||||||
@if ($count==0)
|
|
||||||
<div class="content">
|
|
||||||
<center>
|
|
||||||
<p> </p>
|
|
||||||
<p> </p>
|
|
||||||
<p> </p>
|
|
||||||
<h1>Sorry, you can not use this features yet!!</h1>
|
|
||||||
<h2>You are not assigned yet by a teacher, please kindly wait to be assigned.</h2>
|
|
||||||
<p> </p>
|
|
||||||
<img src="{{asset('lte/dist/img/logo-aplas.png')}}" alt="APLAS logo" class="brand-image elevation-3"
|
|
||||||
style="opacity: .8">
|
|
||||||
</center>
|
|
||||||
</div>
|
|
||||||
@endif
|
|
||||||
@endif
|
|
||||||
</div>
|
|
||||||
<!-- /.content-wrapper -->
|
|
||||||
|
|
||||||
<!-- Control Sidebar -->
|
|
||||||
<aside class="control-sidebar control-sidebar-dark">
|
|
||||||
<!-- Control sidebar content goes here -->
|
|
||||||
<div class="p-3">
|
|
||||||
<h5>Title</h5>
|
|
||||||
<p>Sidebar content</p>
|
|
||||||
</div>
|
|
||||||
</aside>
|
|
||||||
<!-- /.control-sidebar -->
|
|
||||||
|
|
||||||
<!-- Main Footer -->
|
|
||||||
@include('student/footer')
|
|
||||||
|
|
||||||
</div>
|
|
||||||
<!-- ./wrapper -->
|
|
||||||
|
|
||||||
<!-- REQUIRED SCRIPTS -->
|
|
||||||
|
|
||||||
<!-- jQuery -->
|
|
||||||
<script src="{{asset('lte/plugins/jquery/jquery.min.js')}}"></script>
|
|
||||||
<!-- Bootstrap 4 -->
|
|
||||||
<script src="{{asset('lte/plugins/bootstrap/js/bootstrap.bundle.min.js')}}"></script>
|
|
||||||
<!-- AdminLTE App -->
|
|
||||||
<script src="{{asset('lte/dist/js/adminlte.min.js')}}"></script>
|
|
||||||
</body>
|
|
||||||
</html>
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
@extends('student/home')
|
@extends('student/androidcourse/home')
|
||||||
@section('content')
|
@section('content')
|
||||||
<div class="row">
|
<div class="row">
|
||||||
<div class="col-12">
|
<div class="col-12">
|
||||||
|
|
|
||||||
|
|
@ -3,8 +3,8 @@
|
||||||
<div class="row">
|
<div class="row">
|
||||||
<div class="col-12">
|
<div class="col-12">
|
||||||
<div class="card">
|
<div class="card">
|
||||||
<div class="card-header">
|
<div class="card-header" style="background-color: #F8F8FF">
|
||||||
<h3 class="card-title">Start to learn Android Programming with APLAS</h3>
|
<h3 class="card-title">Start to learn Android Programming with iCLOP</h3>
|
||||||
<div class="card-tools">
|
<div class="card-tools">
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
@ -17,29 +17,65 @@
|
||||||
</div>
|
</div>
|
||||||
<div class="row">
|
<div class="row">
|
||||||
<p>
|
<p>
|
||||||
<div>Requirements:</div>
|
<div>Minimum Requirements :
|
||||||
<ol>
|
<ol>
|
||||||
<li>
|
<li>
|
||||||
A PC with minimum 4 GB RAM, 4 GB HDD, 1280 x 800 screen resolution, Microsoft Windows 7/8/10 (32- or 64-bit).
|
CPU : Intel Core i3–350M dual-core processor (2.26 GHz, 3 MB Cache)
|
||||||
</li>
|
</li>
|
||||||
<li>
|
<li>
|
||||||
Java SDK 1.8 minimum installed.
|
VGA : Integrated Intel HD graphics
|
||||||
</li>
|
</li>
|
||||||
<li>
|
<li>
|
||||||
Android Studio 3.5 installed.
|
RAM : 4GB DDR3 dual-channel RAM (2GB + 2GB)
|
||||||
</li>
|
</li>
|
||||||
<li>
|
<br>
|
||||||
A web browser.
|
|
||||||
</li>
|
|
||||||
<li>
|
|
||||||
A PDF reader software.
|
|
||||||
</li>
|
|
||||||
<li>
|
|
||||||
Internet Connection.
|
|
||||||
</li>
|
|
||||||
|
|
||||||
</ol>
|
</ol>
|
||||||
</p>
|
</p>
|
||||||
|
<p1>
|
||||||
|
<div>Recommendet Specs :
|
||||||
|
<ol>
|
||||||
|
<li>
|
||||||
|
CPU : Intel Core i5-8400
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
VGA : Integrated Intel UHD graphics
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
RAM : 16 GB RAM
|
||||||
|
</li>
|
||||||
|
</ol>
|
||||||
|
</p1>
|
||||||
|
<br>
|
||||||
|
<p2>
|
||||||
|
<div>Software :
|
||||||
|
<ol>
|
||||||
|
<li>
|
||||||
|
Windows 7 SP1 64-bit, Windows 8.1 64-bit, Windows 10 64-bit, Windows 11 64-bit
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
Tools: Windows PowerShell 5.0+, Git 2.x
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
Android Studio (Flutter Extension)
|
||||||
|
</li>
|
||||||
|
</ol>
|
||||||
|
</p2>
|
||||||
|
<br>
|
||||||
|
<p3>
|
||||||
|
<div>Documents :
|
||||||
|
<ol>
|
||||||
|
<li>
|
||||||
|
Guide
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
Supplement
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
Test File
|
||||||
|
</li>
|
||||||
|
</ol>
|
||||||
|
</p3>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
@extends('student/home')
|
@extends('student/androidcourse/home')
|
||||||
@section('content')
|
@section('content')
|
||||||
<div class="row">
|
<div class="row">
|
||||||
<div class="col-12">
|
<div class="col-12">
|
||||||
|
|
@ -47,10 +47,15 @@
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="card-footer">
|
<div class="card-footer">
|
||||||
|
<input type="hidden" name="topic" value="{{ $topic['id'] }}" />
|
||||||
|
<input type="button" value="Back" onclick="history.back()" class="btn btn-outline-info">
|
||||||
|
{{ Form::submit('Save', ['class' => 'btn btn-primary pull-right']) }}
|
||||||
|
</div>
|
||||||
|
<!-- <div class="card-footer">
|
||||||
<input type="button" value="Back" onclick="history.back()" class="btn btn-outline-info">
|
<input type="button" value="Back" onclick="history.back()" class="btn btn-outline-info">
|
||||||
<input type="hidden" name="topic" value="{{ $topic['id'] }}" />
|
<input type="hidden" name="topic" value="{{ $topic['id'] }}" />
|
||||||
{{ Form::submit('Save', ['class' => 'btn btn-primary pull-right']) }}
|
{{ Form::submit('Save', ['class' => 'btn btn-primary pull-right']) }}
|
||||||
</div>
|
</div> -->
|
||||||
</div>
|
</div>
|
||||||
<!-- </form> -->
|
<!-- </form> -->
|
||||||
{{ Form::close() }}
|
{{ Form::close() }}
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
@extends('student/home')
|
@extends('student/androidcourse/home')
|
||||||
@section('content')
|
@section('content')
|
||||||
<div class="row">
|
<div class="row">
|
||||||
<div class="col-12">
|
<div class="col-12">
|
||||||
|
|
|
||||||
|
|
@ -3,28 +3,23 @@
|
||||||
<div class="row">
|
<div class="row">
|
||||||
<div class="col-12">
|
<div class="col-12">
|
||||||
<div class="card">
|
<div class="card">
|
||||||
<div class="card-header">
|
<div class="card-header" style="background-color: #F8F8FF">
|
||||||
<h3 class="card-title">Student's Task Results Submission</h3>
|
<h3 class="card-title">Student's Task Results Submission</h3>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
<div class="card-body">
|
<div class="card-body" style="background-color: #F8F8FF">
|
||||||
@if (Session::has('message'))
|
@if (Session::has('message'))
|
||||||
<div id="alert-msg" class="alert alert-success alert-dismissible">
|
<div id="alert-msg" class="alert alert-success alert-dismissible">
|
||||||
<button type="button" class="close" data-dismiss="alert" aria-hidden="true"><EFBFBD></button>
|
<button type="button" class="close" data-dismiss="alert" aria-hidden="true"><EFBFBD></button>
|
||||||
{{ Session::get('message') }}
|
{{ Session::get('message') }}
|
||||||
</div>
|
</div>
|
||||||
@endif
|
@endif
|
||||||
{{ Form::open(['method' => 'GET']) }}
|
{{ Form::open(['method' => 'GET']) }}
|
||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
{!! Form::label('topic', 'Topic:') !!}
|
{!! Form::label('topic', 'Learning Topic:') !!}
|
||||||
{!! Form::select('topicList', $items , $filter, ['class' => 'form-control', 'id' => 'topicList', 'onchange' => 'this.form.submit();']) !!}
|
{!! Form::select('topicList', $items , $filter, ['class' => 'form-control', 'id' => 'topicList', 'onchange' => 'this.form.submit();']) !!}
|
||||||
{{ Form::close() }}
|
{{ Form::close() }}
|
||||||
<!--
|
|
||||||
{!! Form::label('topic', 'Topic:') !!}
|
|
||||||
{!! Form::select('topic', $items , null, ['class' => 'form-control', 'onchange' => 'doSomething(this)']) !!}
|
|
||||||
-->
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
@php ($complete = true)
|
@php ($complete = true)
|
||||||
<div class="row">
|
<div class="row">
|
||||||
|
|
||||||
|
|
@ -32,7 +27,7 @@
|
||||||
{!! Form::label('tit1', 'Result of Each Task:') !!}
|
{!! Form::label('tit1', 'Result of Each Task:') !!}
|
||||||
|
|
||||||
@if ($valid=='0')
|
@if ($valid=='0')
|
||||||
<a class="btn btn-success" href="{{ URL::to('/student/results/create/'.$filter)}}"><i class="fa fa-plus"></i> Submit a Task Result</a>
|
<a class="btn btn-success" href="{{ URL::to('/student/androidcourse/results/create/'.$filter)}}"><i class="fa fa-plus"></i> Submit a Task Result</a>
|
||||||
@endif
|
@endif
|
||||||
<table class="table table-bordered table-hover">
|
<table class="table table-bordered table-hover">
|
||||||
<thead>
|
<thead>
|
||||||
|
|
@ -64,14 +59,12 @@
|
||||||
<td class="text-center"><img src="{{ asset('storage/'.$entity['imgFile']) }}" width="120"/></td>
|
<td class="text-center"><img src="{{ asset('storage/'.$entity['imgFile']) }}" width="120"/></td>
|
||||||
<td>{{ $entity['comment'] }}</td>
|
<td>{{ $entity['comment'] }}</td>
|
||||||
<td class="text-center">
|
<td class="text-center">
|
||||||
<form method="POST" action="{{ URL::to('/student/results/'.$entity['id']) }}">
|
<form method="POST" action="{{ URL::to('/student/androidcourse/results/'.$entity['id']) }}">
|
||||||
{{ csrf_field() }}
|
{{ csrf_field() }}
|
||||||
<input type="hidden" name="_method" value="DELETE" />
|
<input type="hidden" name="_method" value="DELETE" />
|
||||||
<input type="hidden" name="topic" value="{{ $filter }}" />
|
<input type="hidden" name="topic" value="{{ $filter }}" />
|
||||||
<div class="btn-group">
|
<div class="btn-group">
|
||||||
<!--<a class="btn btn-info" href="{{ URL::to('/student/results/'.$entity['id']) }}"><i class="fa fa-eye"></i></a>
|
<a class="btn btn-success" href="{{ URL::to('/student/androidcourse/results/'.$entity['id'].'/edit') }}"><i class="fa fa-pencil-alt"></i></a>
|
||||||
-->
|
|
||||||
<a class="btn btn-success" href="{{ URL::to('/student/results/'.$entity['id'].'/edit') }}"><i class="fa fa-pencil-alt"></i></a>
|
|
||||||
<button type="submit" class="btn btn-danger"><i class="fa fa-trash"></i></button>
|
<button type="submit" class="btn btn-danger"><i class="fa fa-trash"></i></button>
|
||||||
</div>
|
</div>
|
||||||
</form>
|
</form>
|
||||||
|
|
@ -130,9 +123,9 @@
|
||||||
<input type="hidden" name="_method" value="DELETE" />
|
<input type="hidden" name="_method" value="DELETE" />
|
||||||
<input type="hidden" name="topic" value="{{ $filter }}" />
|
<input type="hidden" name="topic" value="{{ $filter }}" />
|
||||||
<div class="btn-group">
|
<div class="btn-group">
|
||||||
<!--<a class="btn btn-info" href="{{ URL::to('/student/results/'.$entity['id']) }}"><i class="fa fa-eye"></i></a>
|
<!--<a class="btn btn-info" href="{{ URL::to('/student/androidcourse/results/'.$entity['id']) }}"><i class="fa fa-eye"></i></a>
|
||||||
-->
|
-->
|
||||||
<a class="btn btn-success" href="{{ URL::to('/student/lfiles/'.$lfile['id'].'/edit') }}"><i class="fa fa-pencil-alt"></i></a>
|
<!-- <a class="btn btn-success" href="{{ URL::to('/student/lfiles/'.$lfile['id'].'/edit') }}"><i class="fa fa-pencil-alt"></i></a> -->
|
||||||
<button type="submit" class="btn btn-danger"><i class="fa fa-trash"></i></button>
|
<button type="submit" class="btn btn-danger"><i class="fa fa-trash"></i></button>
|
||||||
</div>
|
</div>
|
||||||
</form>
|
</form>
|
||||||
|
|
|
||||||
|
|
@ -1,9 +1,10 @@
|
||||||
<aside class="main-sidebar sidebar-dark-primary elevation-4">
|
<aside class="main-sidebar sidebar-dark-primary elevation-4">
|
||||||
<!-- Brand Logo -->
|
<!-- Brand Logo -->
|
||||||
<a href="#" class="brand-link">
|
<a href="#" class="brand-link">
|
||||||
<img src="{{asset('lte/dist/img/logo-aplas.png')}}" alt="APLAS logo" class="brand-image elevation-3"
|
<img src="{{asset('lte/dist/img/iclop-logo.png')}}" alt="iCLOP logo" class="brand-image elevation-3"
|
||||||
style="opacity: .8">
|
style="width:120px;height:60px;">
|
||||||
<span class="brand-text font-weight-light">WebApps</span>
|
<br>
|
||||||
|
<span class="brand-text font-weight-light" style="font-size:160%;"> Android Course</span>
|
||||||
</a>
|
</a>
|
||||||
|
|
||||||
<!-- Sidebar -->
|
<!-- Sidebar -->
|
||||||
|
|
@ -32,111 +33,17 @@
|
||||||
</a>
|
</a>
|
||||||
<ul role="menu" class="nav nav-pills nav-sidebar flex-column">
|
<ul role="menu" class="nav nav-pills nav-sidebar flex-column">
|
||||||
<li class="nav-item">
|
<li class="nav-item">
|
||||||
<a href="{{URL::to('student/tasks')}}" class="nav-link"><i class="nav-icon fas fa-angle-right"></i>
|
<a href="{{URL::to('student/androidcourse/tasks')}}" class="nav-link"><i class="nav-icon fas fa-angle-right"></i>
|
||||||
<p>Download Materials</p>
|
<p>Download Materials</p>
|
||||||
</a >
|
</a >
|
||||||
</li>
|
</li>
|
||||||
|
|
||||||
<li class="nav-item">
|
<li class="nav-item">
|
||||||
<a href="{{URL::to('student/results')}}" class="nav-link">
|
<a href="{{URL::to('student/androidcourse/results')}}" class="nav-link">
|
||||||
<i class="nav-icon fas fa-angle-right"></i>
|
<i class="nav-icon fas fa-angle-right"></i>
|
||||||
<p>Submit Your Project </p>
|
<p>Submit Your Project </p>
|
||||||
</a>
|
</a>
|
||||||
</li>
|
</li>
|
||||||
<li class="nav-item">
|
|
||||||
<a href="{{URL::to('student/valid')}}" class="nav-link">
|
|
||||||
<i class="nav-icon fas fa-angle-right"></i>
|
|
||||||
<p>
|
|
||||||
Validation Results
|
|
||||||
</p>
|
|
||||||
</a>
|
|
||||||
</li>
|
|
||||||
|
|
||||||
<li class="nav-item">
|
|
||||||
<a href="{{URL::to('student/rankview')}}" class="nav-link">
|
|
||||||
<i class="nav-icon fas fa-angle-right""></i>
|
|
||||||
<p>
|
|
||||||
Top 20 Rank
|
|
||||||
</p>
|
|
||||||
</a>
|
|
||||||
</li>
|
|
||||||
|
|
||||||
</ul>
|
|
||||||
</li>
|
|
||||||
|
|
||||||
<li class="treeview">
|
|
||||||
<a href="#" class="nav-link" style="background-color:#FCF3CF;color:black;">
|
|
||||||
<i class="nav-icon fas fa-motorcycle"></i>
|
|
||||||
<p><b>Take Exercise</b>
|
|
||||||
</p>
|
|
||||||
</a>
|
|
||||||
<ul role="menu" class="nav nav-pills nav-sidebar flex-column">
|
|
||||||
<li class="nav-item">
|
|
||||||
<a href="{{URL::to('student/exercise')}}" class="nav-link"><i class="nav-icon fas fa-angle-right"></i>
|
|
||||||
<p>List of Exercises <span class="right badge badge-danger">New</span>
|
|
||||||
</p>
|
|
||||||
</a >
|
|
||||||
</li>
|
|
||||||
|
|
||||||
<li class="nav-item">
|
|
||||||
<a href="{{URL::to('student/exercisesubmission')}}" class="nav-link">
|
|
||||||
<i class="nav-icon fas fa-angle-right"></i>
|
|
||||||
<p>Submit Your Exercise </p>
|
|
||||||
</a>
|
|
||||||
</li>
|
|
||||||
<li class="nav-item">
|
|
||||||
<a href="{{URL::to('student/exercisevalid')}}" class="nav-link">
|
|
||||||
<i class="nav-icon fas fa-angle-right"></i>
|
|
||||||
<p>
|
|
||||||
Validation Results
|
|
||||||
</p>
|
|
||||||
</a>
|
|
||||||
</li>
|
|
||||||
|
|
||||||
|
|
||||||
</ul>
|
|
||||||
</li>
|
|
||||||
|
|
||||||
|
|
||||||
<li class="treeview">
|
|
||||||
<a href="#" class="nav-link" style="background-color:#EDCBFC;color:black;">
|
|
||||||
<i class="nav-icon fas fa-image"></i>
|
|
||||||
<p> <b>Learning UI Design</b>
|
|
||||||
</p>
|
|
||||||
</a>
|
|
||||||
<ul role="menu" class="nav nav-pills nav-sidebar flex-column">
|
|
||||||
|
|
||||||
<li class="nav-item">
|
|
||||||
<a href="{{URL::to('student/uitasks')}}" class="nav-link">
|
|
||||||
<i class="nav-icon fas fa-angle-right"></i>
|
|
||||||
<p>
|
|
||||||
Start Learning <span class="right badge badge-danger">New</span>
|
|
||||||
</p>
|
|
||||||
</a>
|
|
||||||
</li>
|
|
||||||
|
|
||||||
<li class="nav-item">
|
|
||||||
<a href="{{URL::to('student/uiresview')}}" class="nav-link"><i class="nav-icon fas fa-angle-right"></i>
|
|
||||||
<p>Learning Results
|
|
||||||
</p>
|
|
||||||
</a >
|
|
||||||
</li>
|
|
||||||
|
|
||||||
|
|
||||||
</ul>
|
|
||||||
</li>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<li class="treeview">
|
|
||||||
<a href="{{URL::to('student/jplasdown')}}" class="nav-link" style="background-color:#FFBF00;color:black;">
|
|
||||||
<i class="nav-icon fas fa-map"></i>
|
|
||||||
<p><b>Learning JPLAS</b>
|
|
||||||
</p>
|
|
||||||
</a>
|
|
||||||
</li>
|
|
||||||
|
|
||||||
|
|
||||||
</ul>
|
</ul>
|
||||||
</nav>
|
</nav>
|
||||||
<!-- /.sidebar-menu -->
|
<!-- /.sidebar-menu -->
|
||||||
|
|
|
||||||
|
|
@ -106,7 +106,7 @@
|
||||||
<td>{{ $entity['name'] }}</td>
|
<td>{{ $entity['name'] }}</td>
|
||||||
<td class="text-center">
|
<td class="text-center">
|
||||||
<div class="btn-group">
|
<div class="btn-group">
|
||||||
<a class="btn btn-info" href="{{ URL::to('/student/tasks/'.$entity['id']) }}"><i class="fa fa-eye"></i></a>
|
<a class="btn btn-info" href="{{ URL::to('/student/androidcourse/tasks/'.$entity['id']) }}"><i class="fa fa-eye"></i></a>
|
||||||
</div>
|
</div>
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
@extends('admin/admin')
|
@extends('student/androidcourse/home')
|
||||||
@section('content')
|
@section('content')
|
||||||
<div class="row">
|
<div class="row">
|
||||||
<div class="col-12">
|
<div class="col-12">
|
||||||
|
|
|
||||||
|
|
@ -1,109 +0,0 @@
|
||||||
<!DOCTYPE html>
|
|
||||||
<html lang="en">
|
|
||||||
|
|
||||||
<head>
|
|
||||||
<meta charset="utf-8">
|
|
||||||
<meta content="width=device-width, initial-scale=1.0" name="viewport">
|
|
||||||
|
|
||||||
<title>iCLOP Baru - Index</title>
|
|
||||||
<meta content="" name="description">
|
|
||||||
<meta content="" name="keywords">
|
|
||||||
|
|
||||||
<!-- Favicons -->
|
|
||||||
<link href="assets/img/favicon.png" rel="icon">
|
|
||||||
<link href="assets/img/apple-touch-icon.png" rel="apple-touch-icon">
|
|
||||||
|
|
||||||
<!-- Google Fonts -->
|
|
||||||
<link href="https://fonts.googleapis.com/css?family=Open+Sans:300,300i,400,400i,600,600i,700,700i|Roboto:300,300i,400,400i,500,500i,600,600i,700,700i|Poppins:300,300i,400,400i,500,500i,600,600i,700,700i" rel="stylesheet">
|
|
||||||
|
|
||||||
<!-- Vendor CSS Files -->
|
|
||||||
<link href="{{asset('lte/dist/vendor/aos/aos.css')}}" rel="stylesheet">
|
|
||||||
<link href="{{asset('lte/dist/vendor/bootstrap/css/bootstrap.min.css')}}" rel="stylesheet">
|
|
||||||
<link href="{{asset('lte/dist/vendor/bootstrap-icons/bootstrap-icons.css')}}" rel="stylesheet">
|
|
||||||
<link href="{{asset('lte/dist/vendor/boxicons/css/boxicons.min.css')}}" rel="stylesheet">
|
|
||||||
<link href="{{asset('lte/dist/vendor/glightbox/css/glightbox.min.css')}}" rel="stylesheet">
|
|
||||||
<link href="{{asset('lte/dist/vendor/swiper/swiper-bundle.min.css')}}" rel="stylesheet">
|
|
||||||
|
|
||||||
<!-- Template Main CSS File -->
|
|
||||||
<link href="{{asset('lte/dist/css/style.css')}}" rel="stylesheet">
|
|
||||||
<!-- =======================================================
|
|
||||||
* Template Name: BizLand - v3.7.0
|
|
||||||
* Template URL: https://bootstrapmade.com/bizland-bootstrap-business-template/
|
|
||||||
* Author: BootstrapMade.com
|
|
||||||
* License: https://bootstrapmade.com/license/
|
|
||||||
======================================================== -->
|
|
||||||
</head>
|
|
||||||
|
|
||||||
<body>
|
|
||||||
|
|
||||||
|
|
||||||
<main id="main">
|
|
||||||
|
|
||||||
<!-- ======= Featured Services Section ======= -->
|
|
||||||
<section id="featured-services" class="featured-services">
|
|
||||||
<div class="container" data-aos="fade-up">
|
|
||||||
<div class="Title-pembelajaran">
|
|
||||||
<h1 class="mb-5 text-center">Pembelajaran</h1>
|
|
||||||
</div>
|
|
||||||
<div class="row">
|
|
||||||
<div onclick="window.open('{{URL::to('student/androidcourse/asynctask')}}','android-aplas');" class="col-md-6 col-lg-4 d-flex align-items-stretch mb-5">
|
|
||||||
<div class="icon-box" data-aos="fade-up" data-aos-delay="100">
|
|
||||||
<div class="icon"><i class='bx bxl-android'></i></div>
|
|
||||||
<h4 class="title"><a href="">AsyncTask</a></h4>
|
|
||||||
<p class="description">Voluptatum deleniti atque corrupti quos dolores et quas molestias excepturi</p>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div onclick="window.open('{{URL::to('student/androidcourse/firebase')}}','android-aplas');" class="col-md-6 col-lg-4 d-flex align-items-stretch mb-5">
|
|
||||||
<div class="icon-box" data-aos="fade-up" data-aos-delay="200">
|
|
||||||
<div class="icon"><i class='bx bxl-android'></i></div>
|
|
||||||
<h4 class="title"><a href="">Firebase</a></h4>
|
|
||||||
<p class="description">Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore</p>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div onclick="window.open('Python','mywindow');" class="col-md-6 col-lg-4 d-flex align-items-stretch mb-5">
|
|
||||||
<div class="icon-box" data-aos="fade-up" data-aos-delay="200">
|
|
||||||
<div class="icon"><i class='bx bxl-python'></i></div>
|
|
||||||
<h4 class="title"><a href="">REST API</a></h4>
|
|
||||||
<p class="description">Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore</p>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div onclick="window.open('Python','mywindow');" class="col-md-6 col-lg-4 d-flex align-items-stretch mb-5">
|
|
||||||
<div class="icon-box" data-aos="fade-up" data-aos-delay="200">
|
|
||||||
<div class="icon"><i class='bx bxl-python'></i></div>
|
|
||||||
<h4 class="title"><a href="">REST API</a></h4>
|
|
||||||
<p class="description">Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore</p>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
</section><!-- End Featured Services Section -->
|
|
||||||
|
|
||||||
<div class="container py-4">
|
|
||||||
<div class="copyright">
|
|
||||||
<strong>Copyright © 2020 <a href="https://aplas.org">Android Programming Learning Assistance System (APLAS)</a>.</strong> All rights reserved.
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</footer><!-- End Footer -->
|
|
||||||
|
|
||||||
<a href="#" class="back-to-top d-flex align-items-center justify-content-center"><i class="bi bi-arrow-up-short"></i></a>
|
|
||||||
|
|
||||||
<!-- Vendor JS Files -->
|
|
||||||
<script src="{{asset('lte/dist/vendor/purecounter/purecounter.js')}}"></script>
|
|
||||||
<script src="{{asset('lte/dist/vendor/aos/aos.js')}}"></script>
|
|
||||||
<script src="{{asset('lte/dist/vendor/bootstrap/js/bootstrap.bundle.min.js')}}"></script>
|
|
||||||
<script src="{{asset('lte/dist/vendor/glightbox/js/glightbox.min.js')}}"></script>
|
|
||||||
<script src="{{asset('lte/dist/vendor/isotope-layout/isotope.pkgd.min.js')}}"></script>
|
|
||||||
<script src="{{asset('lte/dist/vendor/swiper/swiper-bundle.min.js')}}"></script>
|
|
||||||
<script src="{{asset('lte/dist/vendor/waypoints/noframework.waypoints.js')}}"></script>
|
|
||||||
<script src="{{asset('lte/dist/vendor/php-email-form/validate.js')}}"></script>
|
|
||||||
|
|
||||||
<!-- Template Main JS File -->
|
|
||||||
<script src="{{asset('lte/dist/js/main.js')}}"></script>
|
|
||||||
|
|
||||||
</body>
|
|
||||||
|
|
||||||
</html>
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
@extends('student/home')
|
@extends('student/androidcourse/home')
|
||||||
@section('content')
|
@section('content')
|
||||||
<div class="row">
|
<div class="row">
|
||||||
<div class="col-12">
|
<div class="col-12">
|
||||||
|
|
@ -47,7 +47,7 @@
|
||||||
<td>{{ $entity['checkstat'] }}</td>
|
<td>{{ $entity['checkstat'] }}</td>
|
||||||
<td class="text-center">
|
<td class="text-center">
|
||||||
<div class="btn-group">
|
<div class="btn-group">
|
||||||
<a class="btn btn-info" href="{{ URL::to('/student/valid/'.$entity['id']) }}"><i class="fa fa-eye"> Show Detail</i></a>
|
<a class="btn btn-info" href="{{ URL::to('/student/androidcourse/valid/'.$entity['id']) }}"><i class="fa fa-eye"> Show Detail</i></a>
|
||||||
</div>
|
</div>
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
@extends('student/home')
|
@extends('student/androidcourse/home')
|
||||||
@section('content')
|
@section('content')
|
||||||
<div class="row">
|
<div class="row">
|
||||||
<div class="col-12">
|
<div class="col-12">
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
@extends('student/home')
|
@extends('student/fluttercourse/home')
|
||||||
@section('content')
|
@section('content')
|
||||||
<div class="row">
|
<div class="row">
|
||||||
<div class="col-12">
|
<div class="col-12">
|
||||||
|
|
@ -47,7 +47,7 @@
|
||||||
<td>{{ $entity['checkstat'] }}</td>
|
<td>{{ $entity['checkstat'] }}</td>
|
||||||
<td class="text-center">
|
<td class="text-center">
|
||||||
<div class="btn-group">
|
<div class="btn-group">
|
||||||
<a class="btn btn-info" href="{{ URL::to('/student/valid/'.$entity['id']) }}"><i class="fa fa-eye"> Show Detail</i></a>
|
<a class="btn btn-info" href="{{ URL::to('/student/fluttercourse/valid/'.$entity['id']) }}"><i class="fa fa-eye"> Show Detail</i></a>
|
||||||
</div>
|
</div>
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
@extends('student/home')
|
@extends('student/fluttercourse/home')
|
||||||
@section('content')
|
@section('content')
|
||||||
<div class="row">
|
<div class="row">
|
||||||
<div class="col-12">
|
<div class="col-12">
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
@extends('student/home')
|
@extends('student/nodejscourse/home')
|
||||||
@section('content')
|
@section('content')
|
||||||
<div class="row">
|
<div class="row">
|
||||||
<div class="col-12">
|
<div class="col-12">
|
||||||
|
|
@ -47,7 +47,7 @@
|
||||||
<td>{{ $entity['checkstat'] }}</td>
|
<td>{{ $entity['checkstat'] }}</td>
|
||||||
<td class="text-center">
|
<td class="text-center">
|
||||||
<div class="btn-group">
|
<div class="btn-group">
|
||||||
<a class="btn btn-info" href="{{ URL::to('/student/valid/'.$entity['id']) }}"><i class="fa fa-eye"> Show Detail</i></a>
|
<a class="btn btn-info" href="{{ URL::to('/student/nodejscourse/valid/'.$entity['id']) }}"><i class="fa fa-eye"> Show Detail</i></a>
|
||||||
</div>
|
</div>
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
@extends('student/home')
|
@extends('student/nodejscourse/home')
|
||||||
@section('content')
|
@section('content')
|
||||||
<div class="row">
|
<div class="row">
|
||||||
<div class="col-12">
|
<div class="col-12">
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
@extends('student/home')
|
@extends('student/unitycourse/home')
|
||||||
@section('content')
|
@section('content')
|
||||||
<div class="row">
|
<div class="row">
|
||||||
<div class="col-12">
|
<div class="col-12">
|
||||||
|
|
@ -47,7 +47,7 @@
|
||||||
<td>{{ $entity['checkstat'] }}</td>
|
<td>{{ $entity['checkstat'] }}</td>
|
||||||
<td class="text-center">
|
<td class="text-center">
|
||||||
<div class="btn-group">
|
<div class="btn-group">
|
||||||
<a class="btn btn-info" href="{{ URL::to('/student/valid/'.$entity['id']) }}"><i class="fa fa-eye"> Show Detail</i></a>
|
<a class="btn btn-info" href="{{ URL::to('/student/unitycourse/valid/'.$entity['id']) }}"><i class="fa fa-eye"> Show Detail</i></a>
|
||||||
</div>
|
</div>
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,4 @@
|
||||||
@extends('student/home')
|
@extends('student/unitycourse/home')
|
||||||
@section('content')
|
@section('content')
|
||||||
<div class="row">
|
<div class="row">
|
||||||
<div class="col-12">
|
<div class="col-12">
|
||||||
|
|
|
||||||
|
|
@ -110,11 +110,17 @@ Route::group(['middleware' => ['auth', 'teacher']], function() {
|
||||||
});
|
});
|
||||||
|
|
||||||
Route::group(['middleware' => ['auth', 'student']], function() {
|
Route::group(['middleware' => ['auth', 'student']], function() {
|
||||||
|
//Android//
|
||||||
|
Route::patch('/student/androidcourse/results/valsub',['as' => 'results.valsub', 'uses' => 'AndroidTaskResultController@valsub']);
|
||||||
|
Route::get('student/androidcourse/results/create/{topic}', 'AndroidTaskResultController@create');
|
||||||
Route::get('/student/androidcourse', 'StudentController@androidcourse');
|
Route::get('/student/androidcourse', 'StudentController@androidcourse');
|
||||||
Route::get('/student/androidcourse/topic', 'StudentController@androidcoursetopic');
|
Route::get('/student/androidcourse/topic', 'StudentController@androidcoursetopic');
|
||||||
Route::get('/student/androidcourse', 'StudentController@androidcourse');
|
Route::resource('/student/androidcourse/tasks', 'AndroidController');
|
||||||
Route::resource('/student/androidcourse/tasks', 'TaskStdController');
|
Route::resource('/student/androidcourse/results', 'AndroidResultController');
|
||||||
Route::resource('/student/androidcourse/results', 'TaskResultController');
|
Route::resource('/student/androidcourse/lfiles', 'AndroidFileResultController');
|
||||||
|
Route::get('student/lfiles/androidcourse/create/{topic}', 'AndroidFileResultController@create');
|
||||||
|
Route::get('student/lfiles/androidcourse/valid/{topic}', 'AndroidFileResultController@submit');
|
||||||
|
Route::get('student/lfiles/androidcourse/delete/{id}/{topic}', 'AndroidFileResultController@delete');
|
||||||
// Flutter //
|
// Flutter //
|
||||||
Route::patch('/student/fluttercourse/results/valsub',['as' => 'results.valsub', 'uses' => 'FlutterTaskResultController@valsub']);
|
Route::patch('/student/fluttercourse/results/valsub',['as' => 'results.valsub', 'uses' => 'FlutterTaskResultController@valsub']);
|
||||||
Route::get('student/fluttercourse/results/create/{topic}', 'FlutterTaskResultController@create');
|
Route::get('student/fluttercourse/results/create/{topic}', 'FlutterTaskResultController@create');
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue
Block a user