init vue structure and improve folder filter types
This commit is contained in:
parent
ed0c3d9674
commit
4c8b94aa88
|
@ -9,3 +9,5 @@ tests/bootstrap-config.php
|
||||||
.settings
|
.settings
|
||||||
vendor
|
vendor
|
||||||
src/vendor
|
src/vendor
|
||||||
|
node_modules
|
||||||
|
npm-debug.log
|
||||||
|
|
|
@ -0,0 +1,26 @@
|
||||||
|
{
|
||||||
|
"name": "tainacan",
|
||||||
|
"description": "Tainacan",
|
||||||
|
"author": "Eduardo <eduardo.humberto1992@gmail.com>",
|
||||||
|
"private": true,
|
||||||
|
"scripts": {
|
||||||
|
"dev": "cross-env NODE_ENV=development webpack-dev-server --open --inline --hot",
|
||||||
|
"build": "cross-env NODE_ENV=production webpack --progress --hide-modules"
|
||||||
|
},
|
||||||
|
"dependencies": {
|
||||||
|
"bootstrap": "^3.3.7",
|
||||||
|
"vue": "^2.0.1"
|
||||||
|
},
|
||||||
|
"devDependencies": {
|
||||||
|
"babel-core": "^6.0.0",
|
||||||
|
"babel-loader": "^6.0.0",
|
||||||
|
"babel-preset-es2015": "^6.0.0",
|
||||||
|
"cross-env": "^3.0.0",
|
||||||
|
"css-loader": "^0.25.0",
|
||||||
|
"file-loader": "^0.9.0",
|
||||||
|
"vue-loader": "^9.7.0",
|
||||||
|
"vue-custom-element": "^1.0.13",
|
||||||
|
"webpack": "2.1.0-beta.25",
|
||||||
|
"webpack-dev-server": "2.1.0-beta.0"
|
||||||
|
}
|
||||||
|
}
|
File diff suppressed because one or more lines are too long
|
@ -1,24 +0,0 @@
|
||||||
<?php
|
|
||||||
|
|
||||||
namespace Tainacan\Field_Types;
|
|
||||||
|
|
||||||
defined( 'ABSPATH' ) or die( 'No script kiddies please!' );
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Class TainacanFieldType
|
|
||||||
*/
|
|
||||||
class Relationship extends Field_Type {
|
|
||||||
|
|
||||||
function __construct(){
|
|
||||||
parent::set_primitive_type('');
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @param $metadata
|
|
||||||
* @return string
|
|
||||||
*/
|
|
||||||
|
|
||||||
public function render( $metadata ){
|
|
||||||
return '<tainacan-relationship name="'.$metadata->get_name().'"></tainacan-relationship>';
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -0,0 +1,66 @@
|
||||||
|
<?php
|
||||||
|
|
||||||
|
namespace Tainacan\Field_Types;
|
||||||
|
|
||||||
|
defined( 'ABSPATH' ) or die( 'No script kiddies please!' );
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Class TainacanFieldType
|
||||||
|
*/
|
||||||
|
class Relationship extends Field_Type {
|
||||||
|
|
||||||
|
|
||||||
|
public $collections;
|
||||||
|
public $search_metadata;
|
||||||
|
public $avoid_selected_items;
|
||||||
|
public $inverse;
|
||||||
|
|
||||||
|
function __construct(){
|
||||||
|
parent::set_primitive_type('');
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* get the collections that the metadata type is related
|
||||||
|
*
|
||||||
|
* @return mixed
|
||||||
|
*/
|
||||||
|
public function get_collections(){
|
||||||
|
return $this->collections;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* get the metadata to search items
|
||||||
|
*
|
||||||
|
* @return mixed
|
||||||
|
*/
|
||||||
|
public function get_search_metadata(){
|
||||||
|
return $this->search_metadata;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* avoid selected items
|
||||||
|
*
|
||||||
|
* @return mixed
|
||||||
|
*/
|
||||||
|
public function get_avoid_selected_items(){
|
||||||
|
return $this->avoid_selected_items;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* verify inverse metadata
|
||||||
|
*
|
||||||
|
* @return mixed
|
||||||
|
*/
|
||||||
|
public function get_inverse(){
|
||||||
|
return $this->inverse;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param $metadata
|
||||||
|
* @return string
|
||||||
|
*/
|
||||||
|
|
||||||
|
public function render( $metadata ){
|
||||||
|
return '<tainacan-relationship name="'.$metadata->get_name().'"></tainacan-relationship>';
|
||||||
|
}
|
||||||
|
}
|
|
@ -9,10 +9,21 @@ defined( 'ABSPATH' ) or die( 'No script kiddies please!' );
|
||||||
*/
|
*/
|
||||||
class Selectbox extends Field_Type {
|
class Selectbox extends Field_Type {
|
||||||
|
|
||||||
|
public $term_root;
|
||||||
|
|
||||||
function __construct(){
|
function __construct(){
|
||||||
parent::set_primitive_type('');
|
parent::set_primitive_type('');
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* get the term root to mount the type
|
||||||
|
*
|
||||||
|
* @return mixed
|
||||||
|
*/
|
||||||
|
public function get_term_root(){
|
||||||
|
return $this->term_root;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @param $metadata
|
* @param $metadata
|
||||||
* @return string
|
* @return string
|
|
@ -0,0 +1,31 @@
|
||||||
|
<template>
|
||||||
|
<div class="component">
|
||||||
|
<p>{{ name }}</p>
|
||||||
|
<input type="text">
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
export default {
|
||||||
|
props: {
|
||||||
|
name: { type: String }
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style scoped>
|
||||||
|
input[type="text"] {
|
||||||
|
display: block;
|
||||||
|
margin: 0;
|
||||||
|
width: 100%;
|
||||||
|
border-radius: 6px;
|
||||||
|
font-family: sans-serif;
|
||||||
|
font-size: 18px;
|
||||||
|
appearance: none;
|
||||||
|
box-shadow: none;
|
||||||
|
color:green;
|
||||||
|
}
|
||||||
|
input[type="text"]:focus {
|
||||||
|
outline: none;
|
||||||
|
}
|
||||||
|
</style>
|
|
@ -0,0 +1,31 @@
|
||||||
|
<template>
|
||||||
|
<div class="component">
|
||||||
|
<p>{{ name }}</p>
|
||||||
|
<textarea cols="30" rows="10"></textarea>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
export default {
|
||||||
|
props: {
|
||||||
|
name: { type: String }
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style scoped>
|
||||||
|
textarea {
|
||||||
|
display: block;
|
||||||
|
margin: 0;
|
||||||
|
width: 100%;
|
||||||
|
border-radius: 6px;
|
||||||
|
font-family: sans-serif;
|
||||||
|
font-size: 18px;
|
||||||
|
appearance: none;
|
||||||
|
box-shadow: none;
|
||||||
|
color:green;
|
||||||
|
}
|
||||||
|
textarea:focus {
|
||||||
|
outline: none;
|
||||||
|
}
|
||||||
|
</style>
|
|
@ -39,6 +39,10 @@ function tainacan_autoload($class_name){
|
||||||
$dir = strtolower(CLASSES_DIR.implode(DIRECTORY_SEPARATOR, array_slice($class_path, 1, count($class_path) -2) )).'/';
|
$dir = strtolower(CLASSES_DIR.implode(DIRECTORY_SEPARATOR, array_slice($class_path, 1, count($class_path) -2) )).'/';
|
||||||
$dir = str_replace('_', '-', $dir);
|
$dir = str_replace('_', '-', $dir);
|
||||||
|
|
||||||
|
if( in_array('Field_Types', $class_path) ){
|
||||||
|
$dir.= strtolower(str_replace('_', '-' , $class_name)).'/';
|
||||||
|
}
|
||||||
|
|
||||||
$file = $dir . 'class-tainacan-'. strtolower(str_replace('_', '-' , $class_name)) . '.php';
|
$file = $dir . 'class-tainacan-'. strtolower(str_replace('_', '-' , $class_name)) . '.php';
|
||||||
|
|
||||||
if(file_exists($file)) {
|
if(file_exists($file)) {
|
||||||
|
|
|
@ -0,0 +1,11 @@
|
||||||
|
import Vue from 'vue'
|
||||||
|
// include vue-custom-element plugin to Vue
|
||||||
|
import VueCustomElement from 'vue-custom-element';
|
||||||
|
|
||||||
|
Vue.use(VueCustomElement);
|
||||||
|
|
||||||
|
import Text from '../classes/field-types/text/Text.vue';
|
||||||
|
import Textarea from '../classes/field-types/textarea/Textarea.vue';
|
||||||
|
|
||||||
|
Vue.customElement('tainacan-text', Text);
|
||||||
|
Vue.customElement('tainacan-textarea', Textarea);
|
|
@ -0,0 +1,64 @@
|
||||||
|
var path = require('path')
|
||||||
|
var webpack = require('webpack')
|
||||||
|
|
||||||
|
module.exports = {
|
||||||
|
entry: './src/js/main.js',
|
||||||
|
output: {
|
||||||
|
path: path.resolve(__dirname, './src/assets/'),
|
||||||
|
publicPath: './src/assets/',
|
||||||
|
filename: 'web-components.js'
|
||||||
|
},
|
||||||
|
module: {
|
||||||
|
rules: [
|
||||||
|
{
|
||||||
|
test: /\.vue$/,
|
||||||
|
loader: 'vue',
|
||||||
|
options: {
|
||||||
|
// vue-loader options go here
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
test: /\.js$/,
|
||||||
|
loader: 'babel',
|
||||||
|
exclude: /node_modules/
|
||||||
|
},
|
||||||
|
{
|
||||||
|
test: /\.(png|jpg|gif|svg)$/,
|
||||||
|
loader: 'file',
|
||||||
|
options: {
|
||||||
|
name: '[name].[ext]?[hash]'
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
resolve: {
|
||||||
|
alias: {
|
||||||
|
'vue$': 'vue/dist/vue'
|
||||||
|
}
|
||||||
|
},
|
||||||
|
devServer: {
|
||||||
|
historyApiFallback: true,
|
||||||
|
noInfo: true
|
||||||
|
},
|
||||||
|
devtool: '#eval-source-map'
|
||||||
|
}
|
||||||
|
|
||||||
|
if (process.env.NODE_ENV === 'production') {
|
||||||
|
module.exports.devtool = '#source-map'
|
||||||
|
// http://vue-loader.vuejs.org/en/workflow/production.html
|
||||||
|
module.exports.plugins = (module.exports.plugins || []).concat([
|
||||||
|
new webpack.DefinePlugin({
|
||||||
|
'process.env': {
|
||||||
|
NODE_ENV: '"production"'
|
||||||
|
}
|
||||||
|
}),
|
||||||
|
new webpack.optimize.UglifyJsPlugin({
|
||||||
|
compress: {
|
||||||
|
warnings: false
|
||||||
|
}
|
||||||
|
}),
|
||||||
|
new webpack.LoaderOptionsPlugin({
|
||||||
|
minimize: true
|
||||||
|
})
|
||||||
|
])
|
||||||
|
}
|
Loading…
Reference in New Issue