Skip to content

Commit

Permalink
beta-option
Browse files Browse the repository at this point in the history
beta-release

config

version
  • Loading branch information
faveobot authored and RafficMohammed committed Oct 29, 2024
1 parent d0bd4a7 commit 6183142
Show file tree
Hide file tree
Showing 13 changed files with 124 additions and 27 deletions.
2 changes: 1 addition & 1 deletion app/Http/Controllers/Api/ThirdPartyApiController.php
Original file line number Diff line number Diff line change
Expand Up @@ -67,7 +67,7 @@ public function saveProduct(Request $request)
$this->product_upload->file = $request->input('filename');
$this->product_upload->is_private = $request->input('is_private');
$this->product_upload->is_restricted = $request->input('is_restricted');
$this->product_upload->is_pre_release = $request->input('is_pre_release', 0);
$this->product_upload->release_type = $request->input('release_type');
$this->product_upload->dependencies = json_encode($request->input('dependencies'));
$this->product_upload->save();
$this->product->where('id', $product_id->id)->update(['version' => $request->input('version')]);
Expand Down
4 changes: 2 additions & 2 deletions app/Http/Controllers/Front/ClientController.php
Original file line number Diff line number Diff line change
Expand Up @@ -419,7 +419,7 @@ public function getVersionList(Request $request, $productid, $clientid, $invoice
'description',
'file',
'created_at',
'is_pre_release'
'release_type'
)
->latest();
if ($searchValue) {
Expand All @@ -442,7 +442,7 @@ public function getVersionList(Request $request, $productid, $clientid, $invoice
return ucfirst($version->id);
})
->addColumn('version', function ($version) {
return ucfirst($version->version).' '.getPreReleaseStatusLabel($version->is_pre_release);
return ucfirst($version->version).' '.getPreReleaseStatusLabel($version->release_type);
})
->addColumn('title', function ($version) {
return ucfirst($version->title);
Expand Down
43 changes: 39 additions & 4 deletions app/Http/Controllers/HomeController.php
Original file line number Diff line number Diff line change
Expand Up @@ -383,9 +383,27 @@ public function latestVersion(Request $request, Product $product)
* details of only those versions which are greater than current version else empty version details.
*/
$currenctVersion = $this->getPHPCompatibleVersionString($request->version);
$releases = [0, $request->input('is_pre_release', 0)];
$releases = ['official'];

/**
* To handle the older version Faveo
*/
if ($request->has('is_pre_release') && $request->input('is_pre_release', 0)) {
array_unshift($releases, 'pre_release');
}

/**
* This condition will start work from Faveo v9.3.0.RC.1
*/
match($request->input('release_type')){
'pre_release' => array_unshift($releases, 'pre_release'),
'beta' => array_unshift($releases, 'beta'),

default => $releases
};

$inBetweenVersions = ProductUpload::where([['product_id', $product->id]])->select('version', 'description', 'created_at', 'is_restricted', 'is_private', 'dependencies')
->whereIn('is_pre_release', $releases)
->whereIn('release_type', $releases)
->get()->filter(function ($newVersion) use ($currenctVersion) {
return version_compare($this->getPHPCompatibleVersionString($newVersion->version), $currenctVersion) == 1;
})->sortBy('version', SORT_NATURAL)->toArray();
Expand Down Expand Up @@ -447,9 +465,26 @@ public function isNewVersionAvailable(Request $request, Product $product)
* to compares all these version with current version and if it finds a first greater version than current
* version then it updates returns "updates available" else "no updates available".
*/
$releases = [0, $request->input('is_pre_release', 0)];
$releases = ['official'];

/**
* To handle the older version Faveo
*/
if ($request->has('is_pre_release') && $request->input('is_pre_release', 0)) {
array_unshift($releases, 'pre_release');
}

/**
* This condition will start work from Faveo v9.3.0.RC.1
*/
match($request->input('release_type')){
'pre_release' => array_unshift($releases, 'pre_release'),
'beta' => array_unshift($releases, 'beta'),
default => $releases
};

$allVersions = ProductUpload::where('product_id', $product->id)->where('is_private', '!=', 1)
->whereIn('is_pre_release', $releases)
->whereIn('release_type', $releases)
->orderBy('id', 'desc')->pluck('version')->toArray();
$currenctVersion = $this->getPHPCompatibleVersionString($request->version);
$message = ['status' => '', 'message' => 'no-new-version-available'];
Expand Down
10 changes: 4 additions & 6 deletions app/Http/Controllers/Product/ExtendedBaseProductController.php
Original file line number Diff line number Diff line change
Expand Up @@ -20,8 +20,7 @@ public function getUpload($id)
// ->select('id', 'product_id', 'title', 'description', 'version', 'file');

$new_upload = ProductUpload::leftJoin('products', 'products.id', '=', 'product_uploads.product_id')
->leftJoin('release_types', 'release_types.value', '=', 'product_uploads.is_pre_release')
->select('product_uploads.title', 'product_uploads.description', 'product_uploads.version', 'product_uploads.file', 'products.name', 'product_uploads.id', 'product_uploads.product_id', 'product_uploads.is_pre_release', 'release_types.type', 'release_types.value')
->select('product_uploads.title', 'product_uploads.description', 'product_uploads.version', 'product_uploads.file', 'products.name', 'product_uploads.id', 'product_uploads.product_id', 'product_uploads.release_type')
->where('product_id', '=', $id);

return \DataTables::of($new_upload)
Expand Down Expand Up @@ -52,9 +51,8 @@ public function getUpload($id)
return $model->file;
})
->addColumn('releasetype', function ($model) {
$type = ReleaseType::where('value', $model->is_pre_release)->value('type');

return $type ?? $type;
return $model->release_type;
})
->addColumn('action', function ($model) {
return '<p><a href='.url('edit-upload/'.$model->id).
Expand All @@ -75,7 +73,7 @@ public function getUpload($id)
})
->filterColumn('releasetype', function ($query, $keyword) {
$keyword = trim($keyword);
$query->where('release_types.type', 'LIKE', "%{$keyword}%");
$query->where('product_uploads.release_type', 'LIKE', "%{$keyword}%");
})

->filterColumn('file', function ($query, $keyword) {
Expand Down Expand Up @@ -111,7 +109,7 @@ public function uploadUpdate($id, Request $request)
]);
try {
$file_upload = ProductUpload::find($id);
$file_upload->where('id', $id)->update(['title' => $request->input('title'), 'description' => $request->input('description'), 'version' => $request->input('version'), 'dependencies' => json_encode($request->input('dependencies')), 'is_private' => $request->input('is_private'), 'is_restricted' => $request->input('is_restricted'), 'is_pre_release' => $request->input('is_pre_release')]);
$file_upload->where('id', $id)->update(['title' => $request->input('title'), 'description' => $request->input('description'), 'version' => $request->input('version'), 'dependencies' => json_encode($request->input('dependencies')), 'is_private' => $request->input('is_private'), 'is_restricted' => $request->input('is_restricted'), 'release_type' => $request->input('release_type')]);
$autoUpdateStatus = StatusSetting::pluck('license_status')->first();
if ($autoUpdateStatus == 1) { //If License Setting Status is on,Add Product to the AutoUpdate Script
$productSku = $file_upload->product->product_sku;
Expand Down
2 changes: 1 addition & 1 deletion app/Http/Controllers/Product/ProductController.php
Original file line number Diff line number Diff line change
Expand Up @@ -227,7 +227,7 @@ public function save(Request $request)
$this->product_upload->file = $request->input('filename');

$this->product_upload->is_private = $request->input('is_private');
$this->product_upload->is_pre_release = $request->input('is_pre_release');
$this->product_upload->release_type = $request->input('release_type');
$this->product_upload->is_restricted = $request->input('is_restricted');
$this->product_upload->dependencies = json_encode($request->input('dependencies'));

Expand Down
7 changes: 5 additions & 2 deletions app/Http/helpers.php
Original file line number Diff line number Diff line change
Expand Up @@ -635,10 +635,13 @@ function cloudPopupProducts()
function getPreReleaseStatusLabel($status, $badge = 'badge')
{
switch ($status) {
case '0':
case 'official':
return '<span class='.'"'.$badge.' '.$badge.'-success">Official Release</span>';

case '1':
case 'pre_release':
return '<span class='.'"'.$badge.' '.$badge.'-warning">Pre Release</span>';

case 'beta':
return '<span class='.'"'.$badge.' '.$badge.'-info">Beta</span>';
}
}
2 changes: 1 addition & 1 deletion app/Model/Product/ProductUpload.php
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ class ProductUpload extends Model
{
protected $table = 'product_uploads';

protected $fillable = ['product_id', 'title', 'description', 'version', 'file', 'is_private', 'is_restricted', 'is_pre_release'];
protected $fillable = ['product_id', 'title', 'description', 'version', 'file', 'is_private', 'is_restricted', 'release_type'];

public function product()
{
Expand Down
2 changes: 1 addition & 1 deletion config/app.php
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@

'name' => env('APP_NAME', 'Laravel'),

'version' => 'v4.0.2.2',
'version' => 'v4.0.2.3',

/*
|--------------------------------------------------------------------------
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
<?php

use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;

return new class extends Migration
{
/**
* Run the migrations.
*/
public function up(): void
{
Schema::table('product_uploads', function (Blueprint $table) {
$table->string('release_type')->default('official');
});
}

/**
* Reverse the migrations.
*/
public function down(): void
{
Schema::table('product_uploads', function (Blueprint $table) {
$table->dropColumn('release_type');
});
}
};
29 changes: 29 additions & 0 deletions database/seeders/v4_0_2_3/DatabaseSeeder.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
<?php

namespace Database\Seeders\v4_0_2_3;

use App\Model\Product\ProductUpload;
use Illuminate\Database\Seeder;

class DatabaseSeeder extends Seeder
{
/**
* Run the database seeds.
*
* @return void
*/
public function run()
{
$this->movePreReleaseData();
}

private function movePreReleaseData()
{
ProductUpload::where('is_pre_release', 1)->each(function ($product) {
$product->update(['release_type' => 'pre_release']);
});
}
}



Original file line number Diff line number Diff line change
Expand Up @@ -73,13 +73,17 @@
<input type="checkbox" value="0" name= "is_private" id="p_release" onclick="privateRelease()">

</div>
<div class="form-group col-md-4{{ $errors->has('is_pre_release') ? 'has-error' : '' }}">
<div class="form-group col-md-4{{ $errors->has('release_type') ? 'has-error' : '' }}">
<i class='fa fa-info-circle' style='cursor: help; font-size: small; color: rgb(60, 141, 188);' <label data-toggle='tooltip' style='font-weight:500;' data-placement='top' title="If the release is kept private, product users won't receive notification for this release.">
</label></i>
<!-- name -->
{!! Form::label('is_pre_release','Pre Release') !!}&nbsp;
<input type="checkbox" value="0" name= "is_pre_release" id="pre_release" onclick="preRelease()">

{!! Form::label('release_type','Releases') !!}&nbsp;
<select name="release_type" id="release_type">
<option value="official" selected>Official</option>
<option value="pre_release">Pre Release</option>
<option value="beta">Beta</option>
</select>

</div>


Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -77,12 +77,12 @@
{!! Form::checkbox('is_private',1) !!}
</div>

<div class="col-md-4 form-group {{ $errors->has('is_pre_release') ? 'has-error' : '' }}">
<div class="col-md-4 form-group {{ $errors->has('release_type') ? 'has-error' : '' }}">
<i class='fa fa-info-circle' style='cursor: help; font-size: small; color: rgb(60, 141, 188);' <label data-toggle='tooltip' style='font-weight:500;' data-placement='top' title="If the release is kept as Pre release, product users won't receive notification for this release.">
</label></i>

{!! Form::label('is_pre_release','Pre Release') !!}
{!! Form::checkbox('is_pre_release',1) !!}
{!! Form::label('release_type','Releases') !!}
{!! Form::select('release_type', ['official' => 'Official', 'pre_release' => 'Pre Release', 'beta' => 'Beta'], $model->release_type) !!}
</div>

<div class="col-md-4 form-group {{ $errors->has('is_restricted') ? 'has-error' : '' }}">
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -953,12 +953,12 @@ function preRelease()
var dependencies = $('#dependencies').val();
var private = $('#p_release').val();
var restricted = $('#r_release').val();
var prerelease = $('#pre_release').val();
var releaseType = $('#release_type').val();
$.ajax({
type : "POST",
url : "{!! route('upload/save') !!}",
data : {'filename': filename , 'productname': productname , 'producttitle': producttitle,
'description': description,'dependencies':dependencies,'version':version,'is_private': private,'is_restricted': restricted,'is_pre_release': prerelease,'_token': '{!! csrf_token() !!}'},
'description': description,'dependencies':dependencies,'version':version,'is_private': private,'is_restricted': restricted,'release_type': releaseType,'_token': '{!! csrf_token() !!}'},
success: function(response) {
$("#uploadVersion").html("<i class='fa fa-save'>&nbsp;&nbsp;</i>Save");
$('#alertMessage1').show();
Expand Down

0 comments on commit 6183142

Please sign in to comment.