Commit 080f41a7 authored by Azrul Amir's avatar Azrul Amir

Initial commit

parents
root = true
[*]
charset = utf-8
indent_style = space
indent_size = 2
end_of_line = lf
insert_final_newline = true
trim_trailing_whitespace = true
.DS_Store
.thumbs.db
node_modules
# Quasar core related directories
.quasar
/dist
# Cordova related directories and files
/src-cordova/node_modules
/src-cordova/platforms
/src-cordova/plugins
/src-cordova/www
# Capacitor related directories and files
/src-capacitor/www
/src-capacitor/node_modules
# BEX related directories and files
/src-bex/www
/src-bex/js/core
# Log files
npm-debug.log*
yarn-debug.log*
yarn-error.log*
# Editor directories and files
.idea
*.suo
*.ntvs*
*.njsproj
*.sln
// https://github.com/michael-ciniawsky/postcss-load-config
module.exports = {
plugins: [
// to edit target browsers: use "browserslist" field in package.json
require('autoprefixer')
]
}
{
"recommendations": [
"octref.vetur"
],
"unwantedRecommendations": [
"hookyqr.beautify",
"dbaeumer.jshint",
"ms-vscode.vscode-typescript-tslint-plugin"
]
}
{
"vetur.experimental.templateInterpolationService": true
}
# Quasar App (myapp)
A Quasar Framework app
## Install the dependencies
```bash
npm install
```
### Start the app in development mode (hot-code reloading, error reporting, etc.)
```bash
quasar dev
```
### Build the app for production
```bash
quasar build
```
### Customize the configuration
See [Configuring quasar.conf.js](https://v1.quasar.dev/quasar-cli/quasar-conf-js).
module.exports = {
presets: [
'@quasar/babel-preset-app'
]
}
{
"compilerOptions": {
"baseUrl": ".",
"paths": {
"src/*": [
"src/*"
],
"app/*": [
"*"
],
"components/*": [
"src/components/*"
],
"layouts/*": [
"src/layouts/*"
],
"pages/*": [
"src/pages/*"
],
"assets/*": [
"src/assets/*"
],
"boot/*": [
"src/boot/*"
],
"vue$": [
"node_modules/vue/dist/vue.esm.js"
]
}
},
"exclude": [
"dist",
".quasar",
"node_modules"
]
}
\ No newline at end of file
This diff is collapsed.
{
"name": "myapp",
"version": "0.0.1",
"description": "A Quasar Framework app",
"productName": "Quasar App",
"author": "",
"private": true,
"scripts": {
"test": "echo \"No test specified\" && exit 0"
},
"dependencies": {
"@quasar/extras": "^1.0.0",
"axios": "^0.21.1",
"core-js": "^3.6.5",
"quasar": "^1.0.0"
},
"devDependencies": {
"@quasar/app": "^2.0.0"
},
"browserslist": [
"last 10 Chrome versions",
"last 10 Firefox versions",
"last 4 Edge versions",
"last 7 Safari versions",
"last 8 Android versions",
"last 8 ChromeAndroid versions",
"last 8 FirefoxAndroid versions",
"last 10 iOS versions",
"last 5 Opera versions"
],
"engines": {
"node": ">= 10.18.1",
"npm": ">= 6.13.4",
"yarn": ">= 1.21.1"
}
}
/*
* This file runs in a Node context (it's NOT transpiled by Babel), so use only
* the ES6 features that are supported by your Node version. https://node.green/
*/
// Configuration for your app
// https://v1.quasar.dev/quasar-cli/quasar-conf-js
module.exports = function (/* ctx */) {
return {
// https://v1.quasar.dev/quasar-cli/supporting-ts
supportTS: false,
// https://v1.quasar.dev/quasar-cli/prefetch-feature
// preFetch: true,
// app boot file (/src/boot)
// --> boot files are part of "main.js"
// https://v1.quasar.dev/quasar-cli/boot-files
boot: [
'axios',
],
// https://v1.quasar.dev/quasar-cli/quasar-conf-js#Property%3A-css
css: [
'app.css'
],
// https://github.com/quasarframework/quasar/tree/dev/extras
extras: [
// 'ionicons-v4',
// 'mdi-v5',
// 'fontawesome-v5',
// 'eva-icons',
// 'themify',
// 'line-awesome',
// 'roboto-font-latin-ext', // this or either 'roboto-font', NEVER both!
'roboto-font', // optional, you are not bound to it
'material-icons', // optional, you are not bound to it
],
// Full list of options: https://v1.quasar.dev/quasar-cli/quasar-conf-js#Property%3A-build
build: {
vueRouterMode: 'hash', // available values: 'hash', 'history'
// transpile: false,
// Add dependencies for transpiling with Babel (Array of string/regex)
// (from node_modules, which are by default not transpiled).
// Applies only if "transpile" is set to true.
// transpileDependencies: [],
// rtl: false, // https://v1.quasar.dev/options/rtl-support
// preloadChunks: true,
// showProgress: false,
// gzip: true,
// analyze: true,
// Options below are automatically set depending on the env, set them if you want to override
// extractCSS: false,
// https://v1.quasar.dev/quasar-cli/handling-webpack
// "chain" is a webpack-chain object https://github.com/neutrinojs/webpack-chain
chainWebpack (/* chain */) {
//
},
},
// Full list of options: https://v1.quasar.dev/quasar-cli/quasar-conf-js#Property%3A-devServer
devServer: {
https: false,
port: 8080,
open: true // opens browser window automatically
},
// https://v1.quasar.dev/quasar-cli/quasar-conf-js#Property%3A-framework
framework: {
iconSet: 'material-icons', // Quasar icon set
lang: 'en-us', // Quasar language pack
config: {},
// Possible values for "importStrategy":
// * 'auto' - (DEFAULT) Auto-import needed Quasar components & directives
// * 'all' - Manually specify what to import
importStrategy: 'all',
// For special cases outside of where "auto" importStrategy can have an impact
// (like functional components as one of the examples),
// you can manually specify Quasar components/directives to be available everywhere:
//
// components: [],
// directives: [],
// Quasar plugins
plugins: []
},
// animations: 'all', // --- includes all animations
// https://v1.quasar.dev/options/animations
animations: [],
// https://v1.quasar.dev/quasar-cli/developing-ssr/configuring-ssr
ssr: {
pwa: false
},
// https://v1.quasar.dev/quasar-cli/developing-pwa/configuring-pwa
pwa: {
workboxPluginMode: 'GenerateSW', // 'GenerateSW' or 'InjectManifest'
workboxOptions: {}, // only for GenerateSW
manifest: {
name: `Quasar App`,
short_name: `Quasar App`,
description: `A Quasar Framework app`,
display: 'standalone',
orientation: 'portrait',
background_color: '#ffffff',
theme_color: '#027be3',
icons: [
{
src: 'icons/icon-128x128.png',
sizes: '128x128',
type: 'image/png'
},
{
src: 'icons/icon-192x192.png',
sizes: '192x192',
type: 'image/png'
},
{
src: 'icons/icon-256x256.png',
sizes: '256x256',
type: 'image/png'
},
{
src: 'icons/icon-384x384.png',
sizes: '384x384',
type: 'image/png'
},
{
src: 'icons/icon-512x512.png',
sizes: '512x512',
type: 'image/png'
}
]
}
},
// Full list of options: https://v1.quasar.dev/quasar-cli/developing-cordova-apps/configuring-cordova
cordova: {
// noIosLegacyBuildFlag: true, // uncomment only if you know what you are doing
},
// Full list of options: https://v1.quasar.dev/quasar-cli/developing-capacitor-apps/configuring-capacitor
capacitor: {
hideSplashscreen: true
},
// Full list of options: https://v1.quasar.dev/quasar-cli/developing-electron-apps/configuring-electron
electron: {
bundler: 'packager', // 'packager' or 'builder'
packager: {
// https://github.com/electron-userland/electron-packager/blob/master/docs/api.md#options
// OS X / Mac App Store
// appBundleId: '',
// appCategoryType: '',
// osxSign: '',
// protocol: 'myapp://path',
// Windows only
// win32metadata: { ... }
},
builder: {
// https://www.electron.build/configuration/configuration
appId: 'myapp'
},
// More info: https://v1.quasar.dev/quasar-cli/developing-electron-apps/node-integration
nodeIntegration: true,
extendWebpack (/* cfg */) {
// do something with Electron main process Webpack cfg
// chainWebpack also available besides this extendWebpack
}
}
}
}
<template>
<div id="q-app">
<router-view />
</div>
</template>
<script>
export default {
name: 'App'
}
</script>
This diff is collapsed.
import Vue from 'vue'
import axios from 'axios'
Vue.prototype.$axios = axios
<template>
<q-item
clickable
tag="a"
target="_blank"
:href="link"
>
<q-item-section
v-if="icon"
avatar
>
<q-icon :name="icon" />
</q-item-section>
<q-item-section>
<q-item-label>{{ title }}</q-item-label>
<q-item-label caption>
{{ caption }}
</q-item-label>
</q-item-section>
</q-item>
</template>
<script>
export default {
name: 'EssentialLink',
props: {
title: {
type: String,
required: true
},
caption: {
type: String,
default: ''
},
link: {
type: String,
default: '#'
},
icon: {
type: String,
default: ''
}
}
}
</script>
/* app global css */
$primary : #334453;
$secondary : #288a80;
$accent : #9C27B0;
$dark : #1d1d1d;
$positive : #21BA45;
$negative : #C10015;
$info : #31CCEC;
$warning : #F2C037;
\ No newline at end of file
<!DOCTYPE html>
<html>
<head>
<title><%= productName %></title>
<meta charset="utf-8">
<meta name="description" content="<%= productDescription %>">
<meta name="format-detection" content="telephone=no">
<meta name="msapplication-tap-highlight" content="no">
<meta name="viewport" content="user-scalable=no, initial-scale=1, maximum-scale=1, minimum-scale=1, width=device-width<% if (ctx.mode.cordova || ctx.mode.capacitor) { %>, viewport-fit=cover<% } %>">
<link rel="icon" type="image/png" sizes="128x128" href="icons/favicon-128x128.png">
<link rel="icon" type="image/png" sizes="96x96" href="icons/favicon-96x96.png">
<link rel="icon" type="image/png" sizes="32x32" href="icons/favicon-32x32.png">
<link rel="icon" type="image/png" sizes="16x16" href="icons/favicon-16x16.png">
<link rel="icon" type="image/ico" href="favicon.ico">
</head>
<body>
<!-- DO NOT touch the following DIV -->
<div id="q-app"></div>
</body>
</html>
<template>
<q-layout view="hHh lpR fFf" class="bg-grey-1">
<q-header elevated class="bg-white text-grey-8 q-py-xs" height-hint="58">
<q-toolbar>
<q-btn
flat
dense
round
@click="leftDrawerOpen = !leftDrawerOpen"
aria-label="Menu"
icon="menu"
/>
<q-btn flat no-caps no-wrap class="q-ml-xs" v-if="$q.screen.gt.xs">
<q-icon :name="fabYoutube" color="red" size="28px" />
<q-toolbar-title shrink class="text-weight-bold">
YouTube
</q-toolbar-title>
</q-btn>
<q-space />
<div class="q-gutter-sm row items-center no-wrap">
<q-btn round dense flat color="grey-8" icon="video_call" v-if="$q.screen.gt.sm">
<q-tooltip>Create a video or post</q-tooltip>
</q-btn>
<q-btn round dense flat color="grey-8" icon="apps" v-if="$q.screen.gt.sm">
<q-tooltip>Apps</q-tooltip>
</q-btn>
<q-btn round dense flat color="grey-8" icon="message" v-if="$q.screen.gt.sm">
<q-tooltip>Messages</q-tooltip>
</q-btn>
<q-btn round dense flat color="grey-8" icon="notifications">
<q-badge color="red" text-color="white" floating>
2
</q-badge>
<q-tooltip>Notifications</q-tooltip>
</q-btn>
<q-btn round flat>
<q-avatar size="26px">
<img src="https://cdn.quasar.dev/img/boy-avatar.png">
</q-avatar>
<q-tooltip>Account</q-tooltip>
</q-btn>
</div>
</q-toolbar>
</q-header>
<q-drawer
v-model="leftDrawerOpen"
show-if-above
bordered
content-class="bg-grey-2"
:width="240"
>
<q-scroll-area class="fit">
<q-list padding>
<q-item v-for="link in links1" :key="link.text" v-ripple clickable>
<q-item-section avatar>
<q-icon color="grey" :name="link.icon" />
</q-item-section>
<q-item-section>
<q-item-label>{{ link.text }}</q-item-label>
</q-item-section>
</q-item>
<q-separator class="q-my-md" />
<q-item-label header class="text-weight-bold text-uppercase">
MORE ABOUT US
</q-item-label>
<q-item v-for="link in links2" :key="link.text" v-ripple clickable>
<q-item-section avatar>
<q-icon color="grey" :name="link.icon" />
</q-item-section>
<q-item-section>
<q-item-label>{{ link.text }}</q-item-label>
</q-item-section>
</q-item>
<q-item v-for="link in links3" :key="link.text" v-ripple clickable>
<q-item-section avatar>
<q-icon color="grey" :name="link.icon" />
</q-item-section>
<q-item-section>
<q-item-label>{{ link.text }}</q-item-label>
</q-item-section>
</q-item>
<q-separator class="q-my-md" />
<q-item v-for="link in links4" :key="link.text" v-ripple clickable>
<q-item-section avatar>
<q-icon color="grey" :name="link.icon" />
</q-item-section>
<q-item-section>
<q-item-label>{{ link.text }}</q-item-label>
</q-item-section>
</q-item>
<q-separator class="q-mt-md q-mb-lg" />
<div class="q-px-md text-grey-9">
<div class="row items-center q-gutter-x-sm q-gutter-y-xs">
<a
v-for="button in buttons1"
:key="button.text"
class="YL__drawer-footer-link"
href="javascript:void(0)"
>
{{ button.text }}
</a>
</div>
</div>
<div class="q-py-md q-px-md text-grey-9">
<div class="row items-center q-gutter-x-sm q-gutter-y-xs">
<a
v-for="button in buttons2"
:key="button.text"
class="YL__drawer-footer-link"
href="javascript:void(0)"
>
{{ button.text }}
</a>
</div>
</div>
</q-list>
</q-scroll-area>
</q-drawer>
<q-page-container>
<router-view />
</q-page-container>
</q-layout>
</template>
<script>
import { fabYoutube } from '@quasar/extras/fontawesome-v5'
export default {
name: 'MyLayout',
data () {
return {
leftDrawerOpen: false,
search: '',
links1: [
{ icon: 'home', text: 'Home' },
{ icon: 'subscriptions', text: 'My Account' },
],
links2: [
{ icon: 'phone', text: 'Contact Us' },
],
links3: [
],
links4: [
{ icon: 'settings', text: 'Settings' },
{ icon: 'help', text: 'Help' },
{ icon: 'feedback', text: 'Send feedback' }
],
buttons1: [
{ text: 'About' },
{ text: 'Press' },
{ text: 'Copyright' },
{ text: 'Contact us' },
{ text: 'Creators' },
{ text: 'Advertise' },
{ text: 'Developers' }
],
buttons2: [
{ text: 'Terms' },
{ text: 'Privacy' },
{ text: 'Policy & Safety' },
{ text: 'Test new features' }
]
}
},
created () {
this.fabYoutube = fabYoutube
}
}
</script>
<style lang="sass">
.YL
&__toolbar-input-container
min-width: 100px
width: 55%
&__toolbar-input-btn
border-radius: 0
border-style: solid
border-width: 1px 1px 1px 0
border-color: rgba(0,0,0,.24)
max-width: 60px
width: 100%
&__drawer-footer-link
color: inherit
text-decoration: none
font-weight: 500
font-size: .75rem
&:hover
color: #000
</style>
\ No newline at end of file
<template>
<div class="fullscreen bg-blue text-white text-center q-pa-md flex flex-center">
<div>
<div style="font-size: 30vh">
404
</div>
<div class="text-h2" style="opacity:.4">
Oops. Nothing here...
</div>
<q-btn
class="q-mt-xl"
color="white"
text-color="blue"
unelevated
to="/"
label="Go Home"
no-caps
/>
</div>
</div>
</template>
<script>
export default {
name: 'Error404'
}
</script>
<template>
<q-page class="flex flex-center">
<p class="text-uppercase">Azrul</p>
</q-page>
</template>
<script>
export default {
name: 'PageIndex'
}
</script>
<template>
<q-page padding>
<div class="row justify-center">
<p class="text-h3">This is my page</p>
</div>
<div class="row justify-center">
<q-avatar class="shadow-15" size="100px" font-size="52px" color="teal" text-color="white" icon="directions" />
</div>
</q-page>
</template>
<script>
export default {
// name: 'PageName',
}
</script>
<template>
<q-page >
<div class="q-ma-md">
<q-btn class="full-width" color="green" icon="chat" label="Chat With Librarian" />
</div>
<div class="q-ma-md text-center text-weight-medium">
Corporate Department<br>
Perpustakaan Tun Abdul Razak<br>
40450 Shah Alam<br>
Selangor Darul Ehsan, Malaysia
</div>
<div class="q-pa-md">
<q-list bordered separator>
<q-item clickable v-ripple>
<q-item-section avatar>
<q-avatar color="dark" text-color="white" icon="phone" />
</q-item-section>
<q-item-section>Customer Services</q-item-section>
</q-item>
<q-item clickable v-ripple>
<q-item-section avatar>
<q-avatar color="dark" text-color="white" icon="phone" />
</q-item-section>
<q-item-section>
<q-item-label>Consultation Services 1</q-item-label>
</q-item-section>
</q-item>
<q-item clickable v-ripple>
<q-item-section avatar>
<q-avatar color="dark" text-color="white" icon="phone" />
</q-item-section>
<q-item-section>
<q-item-label>Consultation Services 2</q-item-label>
</q-item-section>
</q-item>
</q-list>
</div>
<div class="q-pa-md">
<q-list bordered separator >
<q-item clickable v-ripple>
<q-item-section avatar>
<q-avatar color="red" text-color="white" icon="mail" />
</q-item-section>
<q-item-section>korporatptar@uitm.edu.my</q-item-section>
</q-item>
<q-item clickable v-ripple>
<q-item-section avatar>
<q-avatar color="blue" text-color="white" icon="send" />
</q-item-section>
<q-item-section>
<q-item-label>Join Channel @UiTMLibrary</q-item-label>
</q-item-section>
</q-item>
<q-item clickable v-ripple>
<q-item-section avatar>
<q-avatar color="green" text-color="white" icon="chat" />
</q-item-section>
<q-item-section>
<q-item-label>Message us on Whatsapp</q-item-label>
</q-item-section>
</q-item>
</q-list>
</div>
<div class="q-mt-md">
<q-btn color="dark" class="full-width" label="Connect With Us" />
</div>
<div class="q-mt-md">
<q-list bordered separator>
<q-item clickable v-ripple>
<q-item-section avatar>
<q-avatar color="blue" text-color="white" icon="facebook" />
</q-item-section>
<q-item-section>
<q-item-label>Facebook</q-item-label>
<q-item-label caption lines="1">/KetuaPustakawanUiTM</q-item-label>
</q-item-section>
</q-item>
</q-list>
</div>
</q-page>
</template>
<script>
export default {
// name: 'PageName',
}
</script>
import Vue from 'vue'
import VueRouter from 'vue-router'
import routes from './routes'
Vue.use(VueRouter)
/*
* If not building with SSR mode, you can
* directly export the Router instantiation;
*
* The function below can be async too; either use
* async/await or return a Promise which resolves
* with the Router instance.
*/
export default function (/* { store, ssrContext } */) {
const Router = new VueRouter({
scrollBehavior: () => ({ x: 0, y: 0 }),
routes,
// Leave these as they are and change in quasar.conf.js instead!
// quasar.conf.js -> build -> vueRouterMode
// quasar.conf.js -> build -> publicPath
mode: process.env.VUE_ROUTER_MODE,
base: process.env.VUE_ROUTER_BASE
})
return Router
}
const routes = [
{
path: '/',
component: () => import('layouts/MainLayout.vue'),
children: [
{ path: '', component: () => import('pages/Index.vue') },
{ path: 'home', component: () => import('pages/azrulpage.vue') },
{ path: 'contact-us', component: () => import('pages/contactus.vue') }
]
},
// Always leave this as last one,
// but you can also remove it
{
path: '*',
component: () => import('pages/Error404.vue')
}
]
export default routes
import Vue from 'vue'
import Vuex from 'vuex'
// import example from './module-example'
Vue.use(Vuex)
/*
* If not building with SSR mode, you can
* directly export the Store instantiation;
*
* The function below can be async too; either use
* async/await or return a Promise which resolves
* with the Store instance.
*/
export default function (/* { ssrContext } */) {
const Store = new Vuex.Store({
modules: {
// example
},
// enable strict mode (adds overhead!)
// for dev mode only
strict: process.env.DEBUGGING
})
return Store
}
export function someAction (/* context */) {
}
export function someGetter (/* state */) {
}
import state from './state'
import * as getters from './getters'
import * as mutations from './mutations'
import * as actions from './actions'
export default {
namespaced: true,
getters,
mutations,
actions,
state
}
export function someMutation (/* state */) {
}
export default function () {
return {
//
}
}
/* eslint-disable */
// THIS FEATURE-FLAG FILE IS AUTOGENERATED,
// REMOVAL OR CHANGES WILL CAUSE RELATED TYPES TO STOP WORKING
import "quasar/dist/types/feature-flag";
declare module "quasar/dist/types/feature-flag" {
interface QuasarFeatureFlags {
store: true;
}
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment