summaryrefslogtreecommitdiff
path: root/framework/gii/generators/model/views/index.php
diff options
context:
space:
mode:
Diffstat (limited to 'framework/gii/generators/model/views/index.php')
-rw-r--r--framework/gii/generators/model/views/index.php115
1 files changed, 115 insertions, 0 deletions
diff --git a/framework/gii/generators/model/views/index.php b/framework/gii/generators/model/views/index.php
new file mode 100644
index 0000000..28040d3
--- /dev/null
+++ b/framework/gii/generators/model/views/index.php
@@ -0,0 +1,115 @@
+<?php
+$class=get_class($model);
+Yii::app()->clientScript->registerScript('gii.model',"
+$('#{$class}_modelClass').change(function(){
+ $(this).data('changed',$(this).val()!='');
+});
+$('#{$class}_tableName').bind('keyup change', function(){
+ var model=$('#{$class}_modelClass');
+ var tableName=$(this).val();
+ if(tableName.substring(tableName.length-1)!='*') {
+ $('.form .row.model-class').show();
+ }
+ else {
+ $('#{$class}_modelClass').val('');
+ $('.form .row.model-class').hide();
+ }
+ if(!model.data('changed')) {
+ var i=tableName.lastIndexOf('.');
+ if(i>=0)
+ tableName=tableName.substring(i+1);
+ var tablePrefix=$('#{$class}_tablePrefix').val();
+ if(tablePrefix!='' && tableName.indexOf(tablePrefix)==0)
+ tableName=tableName.substring(tablePrefix.length);
+ var modelClass='';
+ $.each(tableName.split('_'), function() {
+ if(this.length>0)
+ modelClass+=this.substring(0,1).toUpperCase()+this.substring(1);
+ });
+ model.val(modelClass);
+ }
+});
+$('.form .row.model-class').toggle($('#{$class}_tableName').val().substring($('#{$class}_tableName').val().length-1)!='*');
+");
+?>
+<h1>Model Generator</h1>
+
+<p>This generator generates a model class for the specified database table.</p>
+
+<?php $form=$this->beginWidget('CCodeForm', array('model'=>$model)); ?>
+
+ <div class="row sticky">
+ <?php echo $form->labelEx($model,'tablePrefix'); ?>
+ <?php echo $form->textField($model,'tablePrefix', array('size'=>65)); ?>
+ <div class="tooltip">
+ This refers to the prefix name that is shared by all database tables.
+ Setting this property mainly affects how model classes are named based on
+ the table names. For example, a table prefix <code>tbl_</code> with a table name <code>tbl_post</code>
+ will generate a model class named <code>Post</code>.
+ <br/>
+ Leave this field empty if your database tables do not use common prefix.
+ </div>
+ <?php echo $form->error($model,'tablePrefix'); ?>
+ </div>
+ <div class="row">
+ <?php echo $form->labelEx($model,'tableName'); ?>
+ <?php $this->widget('zii.widgets.jui.CJuiAutoComplete',array(
+ 'model'=>$model,
+ 'attribute'=>'tableName',
+ 'name'=>'tableName',
+ 'source'=>array_keys(Yii::app()->db->schema->getTables()),
+ 'options'=>array(
+ 'minLength'=>'0',
+ ),
+ 'htmlOptions'=>array(
+ 'id'=>'ModelCode_tableName',
+ 'size'=>'65'
+ ),
+ )); ?>
+ <div class="tooltip">
+ This refers to the table name that a new model class should be generated for
+ (e.g. <code>tbl_user</code>). It can contain schema name, if needed (e.g. <code>public.tbl_post</code>).
+ You may also enter <code>*</code> (or <code>schemaName.*</code> for a particular DB schema)
+ to generate a model class for EVERY table.
+ </div>
+ <?php echo $form->error($model,'tableName'); ?>
+ </div>
+ <div class="row model-class">
+ <?php echo $form->label($model,'modelClass',array('required'=>true)); ?>
+ <?php echo $form->textField($model,'modelClass', array('size'=>65)); ?>
+ <div class="tooltip">
+ This is the name of the model class to be generated (e.g. <code>Post</code>, <code>Comment</code>).
+ It is case-sensitive.
+ </div>
+ <?php echo $form->error($model,'modelClass'); ?>
+ </div>
+ <div class="row sticky">
+ <?php echo $form->labelEx($model,'baseClass'); ?>
+ <?php echo $form->textField($model,'baseClass',array('size'=>65)); ?>
+ <div class="tooltip">
+ This is the class that the new model class will extend from.
+ Please make sure the class exists and can be autoloaded.
+ </div>
+ <?php echo $form->error($model,'baseClass'); ?>
+ </div>
+ <div class="row sticky">
+ <?php echo $form->labelEx($model,'modelPath'); ?>
+ <?php echo $form->textField($model,'modelPath', array('size'=>65)); ?>
+ <div class="tooltip">
+ This refers to the directory that the new model class file should be generated under.
+ It should be specified in the form of a path alias, for example, <code>application.models</code>.
+ </div>
+ <?php echo $form->error($model,'modelPath'); ?>
+ </div>
+ <div class="row">
+ <?php echo $form->labelEx($model,'buildRelations'); ?>
+ <?php echo $form->checkBox($model,'buildRelations'); ?>
+ <div class="tooltip">
+ Whether relations should be generated for the model class.
+ In order to generate relations, full scan of the whole database is needed.
+ You should disable this option if your database contains too many tables.
+ </div>
+ <?php echo $form->error($model,'buildRelations'); ?>
+ </div>
+
+<?php $this->endWidget(); ?>