Skip to content

Commit

Permalink
Merge pull request #55 from marmelab/add_directive
Browse files Browse the repository at this point in the history
[RFR] Directive all the things
  • Loading branch information
manuquentin committed Sep 26, 2014
2 parents efc2955 + e8b7a92 commit 8dc1dc3
Show file tree
Hide file tree
Showing 80 changed files with 1,081 additions and 473 deletions.
2 changes: 1 addition & 1 deletion build/ng-admin.min.css

Large diffs are not rendered by default.

21 changes: 11 additions & 10 deletions build/ng-admin.min.js

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "ng-admin",
"version": "0.1.3",
"version": "0.2.0",
"private": false,
"main": "build/ng-admin.min.js",
"repository": {
Expand Down
67 changes: 42 additions & 25 deletions src/javascripts/ng-admin/Crud/CrudModule.js
Original file line number Diff line number Diff line change
@@ -1,19 +1,7 @@
define(function (require) {
"use strict";

var angular = require('angular'),
ListController = require('ng-admin/Crud/component/controller/ListController'),
FormController = require('ng-admin/Crud/component/controller/FormController'),
DeleteController = require('ng-admin/Crud/component/controller/DeleteController'),

InfinitePagination = require('ng-admin/Crud/component/directive/InfinitePagination'),
Compile = require('ng-admin/Crud/component/directive/Compile'),

CrudManager = require('ng-admin/Crud/component/service/CrudManager'),

cacheTemplate = require('ng-admin/Crud/run/cacheTemplate'),

routing = require('ng-admin/Crud/config/routing');
var angular = require('angular');

require('angular-ui-router');
require('angular-sanitize');
Expand All @@ -22,14 +10,47 @@ define(function (require) {

var CrudModule = angular.module('crud', ['ui.router', 'ui.bootstrap', 'ngSanitize', 'textAngular']);

CrudModule.controller('ListController', ListController);
CrudModule.controller('FormController', FormController);
CrudModule.controller('DeleteController', DeleteController);

CrudModule.service('CrudManager', CrudManager);

CrudModule.directive('infinitePagination', InfinitePagination);
CrudModule.directive('compile', Compile);
CrudModule.controller('ListController', require('ng-admin/Crud/component/controller/ListController'));
CrudModule.controller('FormController', require('ng-admin/Crud/component/controller/FormController'));
CrudModule.controller('DeleteController', require('ng-admin/Crud/component/controller/DeleteController'));

CrudModule.service('CrudManager', require('ng-admin/Crud/component/service/CrudManager'));

CrudModule.directive('compile', require('ng-admin/Crud/component/directive/Compile'));

CrudModule.directive('stringField', require('ng-admin/Crud/component/directive/field/StringField'));
CrudModule.directive('emailField', require('ng-admin/Crud/component/directive/field/EmailField'));
CrudModule.directive('textField', require('ng-admin/Crud/component/directive/field/TextField'));
CrudModule.directive('numberField', require('ng-admin/Crud/component/directive/field/NumberField'));
CrudModule.directive('dateField', require('ng-admin/Crud/component/directive/field/DateField'));
CrudModule.directive('booleanField', require('ng-admin/Crud/component/directive/field/BooleanField'));
CrudModule.directive('choiceField', require('ng-admin/Crud/component/directive/field/ChoiceField'));
CrudModule.directive('choicesField', require('ng-admin/Crud/component/directive/field/ChoicesField'));
CrudModule.directive('referenceField', require('ng-admin/Crud/component/directive/field/ReferenceField'));
CrudModule.directive('referenceManyField', require('ng-admin/Crud/component/directive/field/ReferenceManyField'));
CrudModule.directive('wysiwygField', require('ng-admin/Crud/component/directive/field/WysiwygField'));
CrudModule.directive('callbackField', require('ng-admin/Crud/component/directive/field/CallbackField'));

CrudModule.directive('stringColumn', require('ng-admin/Crud/component/directive/column/StringColumn'));
CrudModule.directive('emailColumn', require('ng-admin/Crud/component/directive/column/EmailColumn'));
CrudModule.directive('textColumn', require('ng-admin/Crud/component/directive/column/TextColumn'));
CrudModule.directive('numberColumn', require('ng-admin/Crud/component/directive/column/NumberColumn'));
CrudModule.directive('dateColumn', require('ng-admin/Crud/component/directive/column/DateColumn'));
CrudModule.directive('booleanColumn', require('ng-admin/Crud/component/directive/column/BooleanColumn'));
CrudModule.directive('choiceColumn', require('ng-admin/Crud/component/directive/column/ChoiceColumn'));
CrudModule.directive('choicesColumn', require('ng-admin/Crud/component/directive/column/ChoicesColumn'));
CrudModule.directive('referenceColumn', require('ng-admin/Crud/component/directive/column/ReferenceColumn'));
CrudModule.directive('referenceManyColumn', require('ng-admin/Crud/component/directive/column/ReferenceManyColumn'));
CrudModule.directive('wysiwygColumn', require('ng-admin/Crud/component/directive/column/WysiwygColumn'));
CrudModule.directive('callbackColumn', require('ng-admin/Crud/component/directive/column/CallbackColumn'));

CrudModule.directive('datagrid', require('ng-admin/Crud/component/directive/Datagrid'));
CrudModule.directive('datagridPagination', require('ng-admin/Crud/component/directive/DatagridPagination'));
CrudModule.directive('quickFilter', require('ng-admin/Crud/component/directive/QuickFilter'));

CrudModule.run(require('ng-admin/Crud/run/cacheTemplate'));

CrudModule.config(require('ng-admin/Crud/config/routing'));

/**
* Date Picker patch
Expand All @@ -50,9 +71,5 @@ define(function (require) {
});
}]);

CrudModule.run(cacheTemplate);

CrudModule.config(routing);

return CrudModule;
});
Original file line number Diff line number Diff line change
Expand Up @@ -12,25 +12,16 @@ define(function() {
this.CrudManager = CrudManager;
this.Validator = Validator;
this.entity = entity;
this.openDatepicker = {};
this.title = isNew ? entity.getCreateTitle() : entity.getEditTitle();
this.description = entity.getDescription();

if (isNew) {
this.clear();
}

var searchParams = this.$location.search();
this.$scope.sortField = 'sortField' in searchParams ? searchParams.sortField : '';
this.$scope.sortDir = 'sortDir' in searchParams ? searchParams.sortDir : '';

this.fields = entity.getFields();
this.entityLabel = entity.label();
this.$scope.entity = this.entity;
this.$scope.itemClass = this.itemClass.bind(this);
this.$scope.entityConfig = this.entity;
this.$scope.edit = this.edit.bind(this);
this.$scope.sort = this.sort.bind(this);
this.$scope.isSorting = this.isSorting.bind(this);

$scope.$on('$destroy', this.destroy.bind(this));
};
Expand All @@ -47,20 +38,6 @@ define(function() {
this.$location.path('/list/' + this.entity.name());
};

FormController.prototype.contains = function(collection, item) {
if (!collection) {
return false;
}

for(var i = 0, l = collection.length; i < l; i++) {
if (collection[i] == item) {
return true;
}
}

return false;
};

FormController.prototype.validate = function(form, $event) {
$event.preventDefault();
NProgress.start();
Expand Down Expand Up @@ -91,6 +68,10 @@ define(function() {
return object;
};

/**
* @param {Form }form
* @param {$event} $event
*/
FormController.prototype.submitCreation = function(form, $event) {
var object = this.validate(form, $event),
self = this;
Expand All @@ -108,6 +89,10 @@ define(function() {
});
};

/**
* @param {Form }form
* @param {$event} $event
*/
FormController.prototype.submitEdition = function(form, $event) {
var object = this.validate(form, $event),
self = this;
Expand All @@ -122,59 +107,6 @@ define(function() {
});
};

FormController.prototype.toggleDatePicker = function($event, fieldName) {
$event.preventDefault();
$event.stopPropagation();

if (typeof(this.openDatepicker[fieldName]) === 'undefined') {
this.openDatepicker[fieldName] = true;
} else {
this.openDatepicker[fieldName] = !this.openDatepicker[fieldName];
}
};

/**
* Return 'even'|'odd' based on the index parameter
*
* @param {Number} index
* @returns {string}
*/
FormController.prototype.itemClass = function(index) {
return (index % 2 === 0) ? 'even' : 'odd';
};

/**
*
* @param {Field} field
*/
FormController.prototype.sort = function(field) {
var dir = 'ASC',
fieldName = field.getSortName();

if (this.$scope.sortField === fieldName) {
dir = this.$scope.sortDir === 'ASC' ? 'DESC' : 'ASC';
}

this.changePage(this.$scope.filterQuery, 1, fieldName, dir);
};

FormController.prototype.changePage = function(filter, page, sortField, sortDir) {
this.$location.search('sortField', sortField);
this.$location.search('sortDir', sortDir);
this.$location.path('/edit/' + this.entity.name() + '/' + this.entity.getIdentifier().value);
};

/**
* Return true if a column is being sorted
*
* @param {Field} field
*
* @returns {Boolean}
*/
FormController.prototype.isSorting = function(field) {
return this.$scope.sortField === field.getSortName();
};

/**
* Link to edit entity page
*
Expand All @@ -185,15 +117,6 @@ define(function() {
this.$location.path('/edit/' +entity.name() + '/' + item[entity.getIdentifier().name()]);
};

/**
* Clear all fields
*/
FormController.prototype.clear = function() {
angular.forEach(this.entity.getFields(), function(field){
field.clear();
});
};

FormController.prototype.destroy = function() {
this.$scope = undefined;
this.$location = undefined;
Expand Down
Loading

0 comments on commit 8dc1dc3

Please sign in to comment.