diff --git a/src/app/pages/pages-menu.ts b/src/app/pages/pages-menu.ts
index 47b1d5fa..0a573d78 100644
--- a/src/app/pages/pages-menu.ts
+++ b/src/app/pages/pages-menu.ts
@@ -42,7 +42,7 @@ export const MENU_ITEMS: NbMenuItem[] = [
{
title: 'Image Similarity',
icon: 'image-outline',
- link: '/pages/ui-features/icons',
+ link: '/pages/settings/imagesimilarity',
},
{
title: 'SERP',
diff --git a/src/app/pages/settings/imagesimilarity/imagesimilarity.component.html b/src/app/pages/settings/imagesimilarity/imagesimilarity.component.html
new file mode 100644
index 00000000..4aedba54
--- /dev/null
+++ b/src/app/pages/settings/imagesimilarity/imagesimilarity.component.html
@@ -0,0 +1,10 @@
+
+
+ Image Similarity (Sentisight AI Pre-Training Dataset)
+
+
+
+
+
+
+
diff --git a/src/app/pages/settings/imagesimilarity/imagesimilarity.component.scss b/src/app/pages/settings/imagesimilarity/imagesimilarity.component.scss
new file mode 100644
index 00000000..cdfde5b5
--- /dev/null
+++ b/src/app/pages/settings/imagesimilarity/imagesimilarity.component.scss
@@ -0,0 +1,7 @@
+@import '../../../@theme/styles/themes';
+
+@include nb-install-component() {
+ nb-card {
+ transform: translate3d(0, 0, 0);
+ }
+}
diff --git a/src/app/pages/settings/imagesimilarity/imagesimilarity.component.ts b/src/app/pages/settings/imagesimilarity/imagesimilarity.component.ts
new file mode 100644
index 00000000..af2637cb
--- /dev/null
+++ b/src/app/pages/settings/imagesimilarity/imagesimilarity.component.ts
@@ -0,0 +1,72 @@
+import { Component } from '@angular/core';
+import { ServerDataSource } from 'ng2-smart-table';
+import { HttpClient } from '@angular/common/http';
+import { SmartTableData } from '../../../@core/data/smart-table';
+
+@Component({
+ selector: 'ngx-smart-table',
+ templateUrl: './imagesimilarity.component.html',
+ styleUrls: ['./imagesimilarity.component.scss'],
+})
+export class ImageSimilarityComponent {
+
+ settings = {
+ mode: 'external',
+ actions: {
+ delete: true,
+ add: false,
+ position: 'right'
+ },
+ // selectMode: 'multi',
+ // add: {
+ // addButtonContent: '',
+ // createButtonContent: '',
+ // cancelButtonContent: '',
+ // },
+ edit: {
+ editButtonContent: 'Post Label',
+ // saveButtonContent: '',
+ // cancelButtonContent: '',
+ },
+ delete: {
+ deleteButtonContent: 'Verify',
+ confirmDelete: true,
+ },
+ columns: {
+ no: {
+ title: 'No',
+ type: 'number',
+ },
+ labels: {
+ title: 'Label',
+ type: 'string',
+ },
+ predicted: {
+ title: 'Predicted Score',
+ type: 'number',
+ },
+ picture: {
+ title: 'Picture',
+ type: 'html',
+ height: '100px',
+ valuePrepareFunction: (images) => {
+ return `
`
+ }
+ }
+ },
+ };
+
+ source: ServerDataSource;
+
+ constructor(http: HttpClient) {
+ this.source = new ServerDataSource(http, { endPoint: 'https://my.api.mockaroo.com/imagesimilarity.json?key=2780b150' });
+ }
+
+ onDeleteConfirm(event): void {
+ if (window.confirm('Are you sure you want to delete?')) {
+ event.confirm.resolve();
+ } else {
+ event.confirm.reject();
+ }
+ }
+}
diff --git a/src/app/pages/settings/keywordsdictionary/keywordsdictionary.component.html b/src/app/pages/settings/keywordsdictionary/keywordsdictionary.component.html
index 8e339f90..76db4d18 100644
--- a/src/app/pages/settings/keywordsdictionary/keywordsdictionary.component.html
+++ b/src/app/pages/settings/keywordsdictionary/keywordsdictionary.component.html
@@ -1,9 +1,29 @@
+
+ keyword Dictionary Library
+
-
+
+
+
+
+
+ Add New Keyword
+
+
+
+ Edit Selected Keyword
+
+
+
+ Deactivate Selected Keyword
+
+
+
+
diff --git a/src/app/pages/settings/keywordsdictionary/keywordsdictionary.component.scss b/src/app/pages/settings/keywordsdictionary/keywordsdictionary.component.scss
index 755b885b..df444102 100644
--- a/src/app/pages/settings/keywordsdictionary/keywordsdictionary.component.scss
+++ b/src/app/pages/settings/keywordsdictionary/keywordsdictionary.component.scss
@@ -14,7 +14,7 @@
margin-bottom: 1rem;
}
- .nb-column-name {
+ .nb-column-Title {
width: 100%;
}
@@ -28,14 +28,14 @@
}
@media screen and (min-width: 400px) {
- .nb-column-name,
+ .nb-column-Title,
.nb-column-size {
width: 50%;
}
}
@media screen and (min-width: 500px) {
- .nb-column-name,
+ .nb-column-Title,
.nb-column-size,
.nb-column-kind {
width: 33.333%;
@@ -43,7 +43,7 @@
}
@media screen and (min-width: 600px) {
- .nb-column-name {
+ .nb-column-Title {
width: 31%;
}
.nb-column-size,
@@ -52,4 +52,6 @@
width: 23%;
}
}
+
+
}
diff --git a/src/app/pages/settings/keywordsdictionary/keywordsdictionary.component.ts b/src/app/pages/settings/keywordsdictionary/keywordsdictionary.component.ts
index df730eb1..e9c112e0 100644
--- a/src/app/pages/settings/keywordsdictionary/keywordsdictionary.component.ts
+++ b/src/app/pages/settings/keywordsdictionary/keywordsdictionary.component.ts
@@ -8,10 +8,10 @@ interface TreeNode {
}
interface FSEntry {
- name: string;
- size: string;
- kind: string;
- items?: number;
+ Title: string;
+ Level: string;
+ Parent: string;
+ Score?: number;
}
@Component({
@@ -20,8 +20,8 @@ interface FSEntry {
styleUrls: ['./keywordsdictionary.component.scss'],
})
export class KeywordsDictionaryComponent {
- customColumn = 'name';
- defaultColumns = [ 'size', 'kind', 'items' ];
+ customColumn = 'Title';
+ defaultColumns = [ 'Level', 'Parent', 'Score' ];
allColumns = [ this.customColumn, ...this.defaultColumns ];
dataSource: NbTreeGridDataSource;
@@ -47,26 +47,101 @@ export class KeywordsDictionaryComponent {
private data: TreeNode[] = [
{
- data: { name: 'Projects', size: '1.8 MB', items: 5, kind: 'dir' },
+ data: { Title: 'Promotioon', Level: '0', Parent: '0', Score: 108 },
children: [
- { data: { name: 'project-1.doc', kind: 'doc', size: '240 KB' } },
- { data: { name: 'project-2.doc', kind: 'doc', size: '290 KB' } },
- { data: { name: 'project-3', kind: 'txt', size: '466 KB' } },
- { data: { name: 'project-4.docx', kind: 'docx', size: '900 KB' } },
+ {
+ data: { Title: 'Bonus', Level: '1', Parent: '0', Score: 43 },
+ children: [
+ { data: { Title: 'Welcome Bonus', Level: '2', Parent: '1', Score: 9} },
+ { data: { Title: 'Daily Bonus', Level: '2', Parent: '1', Score: 9} },
+ { data: { Title: 'Topup Bonus', Level: '2', Parent: '1', Score: 9} },
+ { data: { Title: 'Extra Bonus', Level: '2', Parent: '1', Score: 9} },
+ { data: { Title: 'Free Angpao', Level: '2', Parent: '1', Score: 7} },
+ ]
+ },
+ {
+ data: { Title: 'Jackpot', Level: '1', Parent: '0', Score: 24 },
+ children: [
+ { data: { Title: 'Daily Jackpots', Level: '2', Parent: '1', Score: 8} },
+ { data: { Title: 'Progressive Jackpot', Level: '2', Parent: '1', Score: 8} },
+ { data: { Title: 'Pooled Jackpot', Level: '2', Parent: '1', Score: 8} },
+ ]
+ },
+ {
+ data: { Title: 'Rebate', Level: '1', Parent: '0', Score: 41 },
+ children: [
+ { data: { Title: 'Friend Refer', Level: '2', Parent: '1', Score: 5} },
+ { data: { Title: 'Free Credit', Level: '2', Parent: '1', Score: 8} },
+ { data: { Title: 'New Member', Level: '2', Parent: '1', Score: 5} },
+ { data: { Title: 'Deposit', Level: '2', Parent: '1', Score: 5} },
+ { data: { Title: 'Affiliate', Level: '2', Parent: '1', Score: 5} },
+ { data: { Title: 'Redeem Point', Level: '2', Parent: '1', Score: 5} },
+ { data: { Title: 'Cashout', Level: '2', Parent: '1', Score: 8} },
+
+ ]
+ },
],
},
{
- data: { name: 'Reports', kind: 'dir', size: '400 KB', items: 2 },
+ data: { Title: 'Advertisement', Level: '0', Parent: '0', Score: 137 },
children: [
- { data: { name: 'Report 1', kind: 'doc', size: '100 KB' } },
- { data: { name: 'Report 2', kind: 'doc', size: '300 KB' } },
+ { data: { Title: 'Slogan', Level: '1', Parent: '0', Score: 137 },
+ children: [
+ { data: { Title: 'Most Trusted Comapany', Level: '2', Parent: '1', Score: 7} },
+ { data: { Title: 'Trusted Agent', Level: '2', Parent: '1', Score: 7} },
+ { data: { Title: 'Top Slot ', Level: '2', Parent: '1', Score: 7} },
+ { data: { Title: 'Betting & Gambling', Level: '2', Parent: '1', Score: 10} },
+ { data: { Title: 'HOT', Level: '2', Parent: '1', Score: 3} },
+ { data: { Title: 'Fast Processing', Level: '2', Parent: '1', Score: 5} },
+ { data: { Title: 'Real Money', Level: '2', Parent: '1', Score: 5} },
+ { data: { Title: 'Fast Withdrawal', Level: '2', Parent: '1', Score: 7} },
+ { data: { Title: 'Play Now', Level: '2', Parent: '1', Score: 2} },
+ { data: { Title: 'Download Now', Level: '2', Parent: '1', Score: 2} },
+ { data: { Title: 'Available Now', Level: '2', Parent: '1', Score: 2} },
+ { data: { Title: 'Rollover', Level: '2', Parent: '1', Score: 5} },
+ { data: { Title: 'Turnover', Level: '2', Parent: '1', Score: 5} },
+ { data: { Title: 'Lucky Win', Level: '2', Parent: '1', Score: 5} },
+ { data: { Title: 'Easy Win', Level: '2', Parent: '1', Score: 7} },
+ { data: { Title: 'Big Win', Level: '2', Parent: '1', Score: 7} },
+ { data: { Title: 'ID Ong', Level: '2', Parent: '1', Score: 9} },
+ { data: { Title: 'Money Fever', Level: '2', Parent: '1', Score: 8} },
+ { data: { Title: 'Safety Gaming Platform', Level: '2', Parent: '1', Score: 8} },
+ { data: { Title: 'High Payout', Level: '2', Parent: '1', Score: 8} },
+ { data: { Title: 'Games Tips', Level: '2', Parent: '1', Score: 7} },
+ { data: { Title: 'Ambassadors', Level: '2', Parent: '1', Score: 5} },
+ { data: { Title: 'Collaborate Partners', Level: '2', Parent: '1', Score: 3} },
+ { data: { Title: 'Crypto Currency', Level: '2', Parent: '1', Score: 3} },
+
+ ],},
],
},
{
- data: { name: 'Other', kind: 'dir', size: '109 MB', items: 2 },
+ data: { Title: 'Common', Level: '0', Parent: '0', Score: 88 },
children: [
- { data: { name: 'backup.bkp', kind: 'bkp', size: '107 MB' } },
- { data: { name: 'secret-note.txt', kind: 'txt', size: '2 MB' } },
+ {
+ data: { Title: 'Game Related', Level: '1', Parent: '0', Score: 88 },
+ children: [
+ { data: { Title: 'Balance', Level: '2', Parent: '1', Score: 3} },
+ { data: { Title: 'Bet', Level: '2', Parent: '1', Score: 7} },
+ { data: { Title: 'Lines', Level: '2', Parent: '1', Score: 2} },
+ { data: { Title: 'Spin', Level: '2', Parent: '1', Score: 5} },
+ { data: { Title: 'Auto Spin', Level: '2', Parent: '1', Score: 5} },
+ { data: { Title: 'Mini', Level: '2', Parent: '1', Score: 3} },
+ { data: { Title: 'Minor', Level: '2', Parent: '1', Score: 5} },
+ { data: { Title: 'Major', Level: '2', Parent: '1', Score: 5} },
+ { data: { Title: 'Mega', Level: '2', Parent: '1', Score: 5} },
+ { data: { Title: 'Random', Level: '2', Parent: '1', Score: 5} },
+ { data: { Title: 'Ultimate', Level: '2', Parent: '1', Score: 5} },
+ { data: { Title: 'Wild', Level: '2', Parent: '1', Score: 7} },
+ { data: { Title: 'Free Spin', Level: '2', Parent: '1', Score: 7} },
+ { data: { Title: 'Scatter', Level: '2', Parent: '1', Score: 7} },
+ { data: { Title: 'Lucky Draw', Level: '2', Parent: '1', Score: 6} },
+ { data: { Title: 'Bank Account', Level: '2', Parent: '1', Score: 3} },
+ { data: { Title: 'Payment Gateway', Level: '2', Parent: '1', Score: 3} },
+ { data: { Title: '24 / 7', Level: '2', Parent: '1', Score: 5} },
+
+ ]
+ },
],
},
];
diff --git a/src/app/pages/settings/settings-routing.module.ts b/src/app/pages/settings/settings-routing.module.ts
index 28a179f4..0291a0e5 100644
--- a/src/app/pages/settings/settings-routing.module.ts
+++ b/src/app/pages/settings/settings-routing.module.ts
@@ -3,6 +3,7 @@ import { Routes, RouterModule } from '@angular/router';
import { SettingsComponent } from './settings.component';
import { KeywordsDictionaryComponent } from './keywordsdictionary/keywordsdictionary.component';
+import { ImageSimilarityComponent } from './imagesimilarity/imagesimilarity.component';
const routes: Routes = [{
path: '',
@@ -12,6 +13,10 @@ const routes: Routes = [{
path: 'keywordsdictionary',
component: KeywordsDictionaryComponent,
},
+ {
+ path: 'imagesimilarity',
+ component: ImageSimilarityComponent,
+ },
],
}];
@@ -24,4 +29,5 @@ export class SettingsRoutingModule { }
export const routedComponents = [
SettingsComponent,
KeywordsDictionaryComponent,
+ ImageSimilarityComponent,
];
diff --git a/src/app/pages/settings/settings.module.ts b/src/app/pages/settings/settings.module.ts
index f7617230..b977d373 100644
--- a/src/app/pages/settings/settings.module.ts
+++ b/src/app/pages/settings/settings.module.ts
@@ -1,7 +1,7 @@
import { NgModule } from '@angular/core';
-import { NbCardModule, NbIconModule, NbInputModule, NbTreeGridModule } from '@nebular/theme';
+import { NbCardModule, NbIconModule, NbInputModule, NbTreeGridModule,NbActionsModule } from '@nebular/theme';
import { Ng2SmartTableModule } from 'ng2-smart-table';
-
+import { FormsModule as ngFormsModule } from '@angular/forms';
import { ThemeModule } from '../../@theme/theme.module';
import { SettingsRoutingModule, routedComponents } from './settings-routing.module';
import { FsIconComponent } from './keywordsdictionary/keywordsdictionary.component';
@@ -15,6 +15,8 @@ import { FsIconComponent } from './keywordsdictionary/keywordsdictionary.compone
ThemeModule,
SettingsRoutingModule,
Ng2SmartTableModule,
+ NbActionsModule,
+ ngFormsModule
],
declarations: [
...routedComponents,
diff --git a/src/index.html b/src/index.html
index eb0925ad..e93a9d8e 100644
--- a/src/index.html
+++ b/src/index.html
@@ -4,8 +4,8 @@
Klikx SEO Admin Portal
-
-
+
+