Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
S
SmartCard
Project
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Commits
Issue Boards
Open sidebar
itd-x
SmartCard
Commits
55edb8da
Commit
55edb8da
authored
Jul 22, 2014
by
Pintor Jonathan Silitonga
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Fungsi Create Jadwal dan Tampilan
parent
8c3f4e14
Show whitespace changes
Inline
Side-by-side
Showing
17 changed files
with
1067 additions
and
111 deletions
+1067
-111
pager.css
assets/12e677ab/pager.css
+67
-0
private.xml
nbproject/private/private.xml
+6
-1
MJadwalController.php
protected/controllers/MJadwalController.php
+13
-7
BootGroupGridView.php
protected/extensions/groupgridview/BootGroupGridView.php
+326
-0
CHANGELOG.txt
protected/extensions/groupgridview/CHANGELOG.txt
+24
-0
GroupGridView.php
protected/extensions/groupgridview/GroupGridView.php
+326
-0
README.md
protected/extensions/groupgridview/README.md
+7
-0
LoginForm.php
protected/models/LoginForm.php
+5
-3
MJadwal.php
protected/models/MJadwal.php
+4
-4
LaporanBeritaAcaraKuliah.php
...cted/views/beritaAcaraKuliah/LaporanBeritaAcaraKuliah.php
+29
-27
adminyDate.php
protected/views/beritaAcaraKuliah/adminyDate.php
+11
-12
_formDJadwal.php
protected/views/dJadwal/_formDJadwal.php
+6
-6
_form.php
protected/views/mJadwal/_form.php
+5
-4
admin.php
protected/views/mJadwal/admin.php
+23
-19
index.php
protected/views/mJadwal/index.php
+168
-4
login.php
protected/views/site/login.php
+17
-11
index.php
themes/hebo/views/site/index.php
+30
-13
No files found.
assets/12e677ab/pager.css
0 → 100644
View file @
55edb8da
/**
* CSS styles for CLinkPager.
*
* @author Qiang Xue <qiang.xue@gmail.com>
* @link http://www.yiiframework.com/
* @copyright Copyright © 2008-2010 Yii Software LLC
* @license http://www.yiiframework.com/license/
* @since 1.0
*/
ul
.yiiPager
{
font-size
:
11px
;
border
:
0
;
margin
:
0
;
padding
:
0
;
line-height
:
100%
;
display
:
inline
;
}
ul
.yiiPager
li
{
display
:
inline
;
}
ul
.yiiPager
a
:link
,
ul
.yiiPager
a
:visited
{
border
:
solid
1px
#9aafe5
;
font-weight
:
bold
;
color
:
#0e509e
;
padding
:
1px
6px
;
text-decoration
:
none
;
}
ul
.yiiPager
.page
a
{
font-weight
:
normal
;
}
ul
.yiiPager
a
:hover
{
border
:
solid
1px
#0e509e
;
}
ul
.yiiPager
.selected
a
{
background
:
#2e6ab1
;
color
:
#FFFFFF
;
font-weight
:
bold
;
}
ul
.yiiPager
.hidden
a
{
border
:
solid
1px
#DEDEDE
;
color
:
#888888
;
}
/**
* Hide first and last buttons by default.
*/
ul
.yiiPager
.first
,
ul
.yiiPager
.last
{
display
:
none
;
}
\ No newline at end of file
nbproject/private/private.xml
View file @
55edb8da
...
@@ -4,7 +4,12 @@
...
@@ -4,7 +4,12 @@
<editor-bookmarks
xmlns=
"http://www.netbeans.org/ns/editor-bookmarks/2"
lastBookmarkId=
"0"
/>
<editor-bookmarks
xmlns=
"http://www.netbeans.org/ns/editor-bookmarks/2"
lastBookmarkId=
"0"
/>
<open-files
xmlns=
"http://www.netbeans.org/ns/projectui-open-files/2"
>
<open-files
xmlns=
"http://www.netbeans.org/ns/projectui-open-files/2"
>
<group>
<group>
<file>
file:/C:/xampp/htdocs/Test/smartcard/protected/views/site/excel.php
</file>
<file>
file:/C:/xampp/htdocs/Test/smartcard/protected/controllers/SiteController.php
</file>
<file>
file:/C:/xampp/htdocs/Test/smartcard/protected/views/site/login.php
</file>
<file>
file:/C:/xampp/htdocs/Test/smartcard/themes/hebo/views/site/pages/elements.php
</file>
<file>
file:/C:/xampp/htdocs/Test/smartcard/protected/models/LoginForm.php
</file>
<file>
file:/C:/xampp/htdocs/Test/smartcard/protected/controllers/MJadwalController.php
</file>
<file>
file:/C:/xampp/htdocs/Test/smartcard/protected/views/mJadwal/_form.php
</file>
</group>
</group>
</open-files>
</open-files>
</project-private>
</project-private>
protected/controllers/MJadwalController.php
View file @
55edb8da
...
@@ -77,7 +77,8 @@ class MJadwalController extends Controller {
...
@@ -77,7 +77,8 @@ class MJadwalController extends Controller {
if
(
isset
(
$_POST
[
'DJadwal'
]))
{
if
(
isset
(
$_POST
[
'DJadwal'
]))
{
for
(
$i
=
0
;
$i
<
8
;
$i
++
)
{
for
(
$i
=
0
;
$i
<
8
;
$i
++
)
{
if
(
!
isset
(
$_POST
[
'formsesi'
][
$i
]))
{
if
(
!
isset
(
$_POST
[
"formsesi
$i
"
]))
{
echo
$i
;
$detail
=
new
DJadwal
;
$detail
=
new
DJadwal
;
$detail
->
KODE_MK
=
$_POST
[
'DJadwal'
][
$i
][
'KODE_MK'
];
$detail
->
KODE_MK
=
$_POST
[
'DJadwal'
][
$i
][
'KODE_MK'
];
$detail
->
RUANGAN
=
$_POST
[
'DJadwal'
][
$i
][
'RUANGAN'
];
$detail
->
RUANGAN
=
$_POST
[
'DJadwal'
][
$i
][
'RUANGAN'
];
...
@@ -118,7 +119,6 @@ class MJadwalController extends Controller {
...
@@ -118,7 +119,6 @@ class MJadwalController extends Controller {
if
(
$kuliah
->
validate
())
{
if
(
$kuliah
->
validate
())
{
$kuliah
->
save
();
$kuliah
->
save
();
$this
->
redirect
(
array
(
'view'
,
'id'
=>
$model
->
ID
));
}
else
{
}
else
{
echo
CHtml
::
errorSummary
(
$kuliah
);
echo
CHtml
::
errorSummary
(
$kuliah
);
}
}
...
@@ -128,6 +128,7 @@ class MJadwalController extends Controller {
...
@@ -128,6 +128,7 @@ class MJadwalController extends Controller {
}
}
}
}
}
}
$this
->
redirect
(
array
(
'view'
,
'id'
=>
$model
->
ID
));
}
else
{
}
else
{
echo
CHtml
::
errorSummary
(
$model
);
echo
CHtml
::
errorSummary
(
$model
);
}
}
...
@@ -184,9 +185,14 @@ class MJadwalController extends Controller {
...
@@ -184,9 +185,14 @@ class MJadwalController extends Controller {
* Lists all models.
* Lists all models.
*/
*/
public
function
actionIndex
()
{
public
function
actionIndex
()
{
$dataProvider
=
new
CActiveDataProvider
(
'MJadwal'
);
$model
=
new
MJadwal
(
'search'
);
$model
->
unsetAttributes
();
// clear any default values
if
(
isset
(
$_GET
[
'MJadwal'
]))
$model
->
attributes
=
$_GET
[
'MJadwal'
];
$this
->
render
(
'index'
,
array
(
$this
->
render
(
'index'
,
array
(
'
dataProvider'
=>
$dataProvider
,
'
model'
=>
$model
,
));
));
}
}
...
@@ -300,13 +306,13 @@ class MJadwalController extends Controller {
...
@@ -300,13 +306,13 @@ class MJadwalController extends Controller {
echo
Chtml
::
tag
(
'option'
,
array
(
'value'
=>
'Kosong'
),
CHtml
::
encode
(
'Free'
));
echo
Chtml
::
tag
(
'option'
,
array
(
'value'
=>
'Kosong'
),
CHtml
::
encode
(
'Free'
));
}
}
public
function
actionDeskripsi
()
{
public
function
actionDeskripsi
(
$id
)
{
$matkul
=
$_POST
[
'
Jadwal'
][
'KODE_MK'
];
$matkul
=
$_POST
[
'
DJadwal'
][
$id
][
'KODE_MK'
];
$sql
=
"SELECT * FROM kurikulum WHERE KODE_MK LIKE '
$matkul
'"
;
$sql
=
"SELECT * FROM kurikulum WHERE KODE_MK LIKE '
$matkul
'"
;
$list
=
Yii
::
app
()
->
db
->
createCommand
(
$sql
)
->
queryAll
();
$list
=
Yii
::
app
()
->
db
->
createCommand
(
$sql
)
->
queryAll
();
echo
$list
[
0
][
'NAMA_KUL_IND'
];
echo
$list
[
0
][
'NAMA_KUL_IND'
]
.
" ("
.
$list
[
0
][
'SHORT_NAME'
]
.
")"
;
}
}
public
function
actionLoadChildByAjax
(
$index
)
{
public
function
actionLoadChildByAjax
(
$index
)
{
...
...
protected/extensions/groupgridview/BootGroupGridView.php
0 → 100644
View file @
55edb8da
<?php
Yii
::
import
(
'bootstrap.widgets.TbGridView'
);
/**
* A Grid View that groups rows by any column(s)
*
* @category User Interface
* @package extensions
* @author Vitaliy Potapov <noginsk@rambler.ru>
* @version 1.3
*/
class
BootGroupGridView
extends
TbGridView
{
//column values are merged independently
const
MERGE_SIMPLE
=
'simple'
;
//column values are merged if at least one value of nested columns changes (makes sense when several columns in $mergeColumns option)
const
MERGE_NESTED
=
'nested'
;
//column values are merged independently, but value is shown in first row of group and below cells just cleared (instead of `rowspan`)
const
MERGE_FIRSTROW
=
'firstrow'
;
public
$mergeColumns
=
array
();
public
$mergeType
=
self
::
MERGE_SIMPLE
;
public
$mergeCellCss
=
'text-align: center; vertical-align: middle'
;
//list of columns on which change extrarow will be triggered
public
$extraRowColumns
=
array
();
//expression to get value shown in extrarow
public
$extraRowExpression
;
//position of extraRow relative to group: 'above' | 'below'
public
$extraRowPos
=
'above'
;
//totals expression: function($data, $row, &$totals)
public
$extraRowTotals
;
//array with groups
private
$_groups
=
array
();
public
function
renderTableBody
()
{
if
(
!
empty
(
$this
->
mergeColumns
)
||
!
empty
(
$this
->
extraRowColumns
))
{
$this
->
groupByColumns
();
}
parent
::
renderTableBody
();
}
/**
* find and store changing of group columns
*
* @param mixed $data
*/
public
function
groupByColumns
()
{
$data
=
$this
->
dataProvider
->
getData
();
if
(
count
(
$data
)
==
0
)
return
;
if
(
!
is_array
(
$this
->
mergeColumns
))
$this
->
mergeColumns
=
array
(
$this
->
mergeColumns
);
if
(
!
is_array
(
$this
->
extraRowColumns
))
$this
->
extraRowColumns
=
array
(
$this
->
extraRowColumns
);
//store columns for group. Set object for existing columns in grid and string for attributes
$groupColumns
=
array_unique
(
array_merge
(
$this
->
mergeColumns
,
$this
->
extraRowColumns
));
foreach
(
$groupColumns
as
$key
=>
$colName
)
{
foreach
(
$this
->
columns
as
$column
)
{
if
(
property_exists
(
$column
,
'name'
)
&&
$column
->
name
==
$colName
)
{
$groupColumns
[
$key
]
=
$column
;
break
;
}
}
}
//storage for groups in each column
$groups
=
array
();
//values for first row
$values
=
$this
->
getRowValues
(
$groupColumns
,
$data
[
0
],
0
);
foreach
(
$values
as
$colName
=>
$value
)
{
$groups
[
$colName
][]
=
array
(
'value'
=>
$value
,
'column'
=>
$colName
,
'start'
=>
0
,
//end - later
//totals - later
);
}
//calc totals for the first row
$totals
=
array
();
if
(
$this
->
extraRowTotals
)
{
$this
->
evaluateExpression
(
$this
->
extraRowTotals
,
array
(
'data'
=>
$data
[
0
],
'row'
=>
0
,
'totals'
=>
&
$totals
));
}
//iterate data
for
(
$i
=
1
;
$i
<
count
(
$data
);
$i
++
)
{
//save row values in array
$current
=
$this
->
getRowValues
(
$groupColumns
,
$data
[
$i
],
$i
);
//define is change occured. Need this extra foreach for correctly proceed extraRows
$changedColumns
=
array
();
foreach
(
$current
as
$colName
=>
$curValue
)
{
$prev
=
end
(
$groups
[
$colName
]);
if
(
$curValue
!=
$prev
[
'value'
])
{
$changedColumns
[]
=
$colName
;
}
}
/*
if this flag = true -> we will write change for all grouping columns.
It's required when change of any column from extraRowColumns occurs
*/
$extraRowColumnChanged
=
(
count
(
array_intersect
(
$changedColumns
,
$this
->
extraRowColumns
))
>
0
);
/*
this changeOccured related to foreach below. It is required only for mergeType == self::MERGE_NESTED,
to write change for all nested columns when change of previous column occured
*/
$changeOccured
=
false
;
foreach
(
$current
as
$colName
=>
$curValue
)
{
//value changed
$valueChanged
=
in_array
(
$colName
,
$changedColumns
);
//change already occured in this loop and mergeType set to MERGETYPE_NESTED
$saveChange
=
$valueChanged
||
(
$changeOccured
&&
$this
->
mergeType
==
self
::
MERGE_NESTED
);
if
(
$extraRowColumnChanged
||
$saveChange
)
{
$changeOccured
=
true
;
$lastIndex
=
count
(
$groups
[
$colName
])
-
1
;
//finalize prev group
$groups
[
$colName
][
$lastIndex
][
'end'
]
=
$i
-
1
;
$groups
[
$colName
][
$lastIndex
][
'totals'
]
=
$totals
;
//begin new group
$groups
[
$colName
][]
=
array
(
'start'
=>
$i
,
'column'
=>
$colName
,
'value'
=>
$curValue
,
);
}
}
//if change in extrarowcolumn --> reset totals
if
(
$extraRowColumnChanged
)
{
$totals
=
array
();
}
//calc totals for that row
if
(
$this
->
extraRowTotals
)
{
$this
->
evaluateExpression
(
$this
->
extraRowTotals
,
array
(
'data'
=>
$data
[
$i
],
'row'
=>
$i
,
'totals'
=>
&
$totals
));
}
}
//finalize group for last row
foreach
(
$groups
as
$colName
=>
$v
)
{
$lastIndex
=
count
(
$groups
[
$colName
])
-
1
;
$groups
[
$colName
][
$lastIndex
][
'end'
]
=
count
(
$data
)
-
1
;
$groups
[
$colName
][
$lastIndex
][
'totals'
]
=
$totals
;
}
$this
->
_groups
=
$groups
;
}
public
function
renderTableRow
(
$row
)
{
$extraRowEdge
=
null
;
if
(
count
(
$this
->
extraRowColumns
))
{
$colName
=
$this
->
extraRowColumns
[
0
];
$extraRowEdge
=
$this
->
isGroupEdge
(
$colName
,
$row
);
if
(
$this
->
extraRowPos
==
'above'
&&
isset
(
$extraRowEdge
[
'start'
]))
{
$this
->
renderExtraRow
(
$row
,
$extraRowEdge
[
'group'
][
'totals'
]);
}
}
/*
if($this->_changes && array_key_exists($row, $this->_changes)) {
$change = $this->_changes[$row];
//if change in extracolumns --> put extra row
$columnsInExtra = array_intersect(array_keys($change['columns']), $this->extraRowColumns);
//extraRowPos = before
if(count($columnsInExtra) > 0 && $this->extraRowPos == 'before') {
$this->renderExtraRow($row, $this->_changes[$row], $columnsInExtra);
}
}
*/
// original CGridView code
if
(
$this
->
rowCssClassExpression
!==
null
)
{
$data
=
$this
->
dataProvider
->
data
[
$row
];
echo
'<tr class="'
.
$this
->
evaluateExpression
(
$this
->
rowCssClassExpression
,
array
(
'row'
=>
$row
,
'data'
=>
$data
))
.
'">'
;
}
else
if
(
is_array
(
$this
->
rowCssClass
)
&&
(
$n
=
count
(
$this
->
rowCssClass
))
>
0
)
echo
'<tr class="'
.
$this
->
rowCssClass
[
$row
%
$n
]
.
'">'
;
else
echo
'<tr>'
;
foreach
(
$this
->
columns
as
$column
)
{
$isGroupColumn
=
property_exists
(
$column
,
'name'
)
&&
in_array
(
$column
->
name
,
$this
->
mergeColumns
);
if
(
!
$isGroupColumn
)
{
$column
->
renderDataCell
(
$row
);
continue
;
}
//is curent row appears on edge of group
$edge
=
$this
->
isGroupEdge
(
$column
->
name
,
$row
);
switch
(
$this
->
mergeType
)
{
case
self
::
MERGE_SIMPLE
:
case
self
::
MERGE_NESTED
:
if
(
isset
(
$edge
[
'start'
]))
{
$options
=
$column
->
htmlOptions
;
$column
->
htmlOptions
[
'rowspan'
]
=
$edge
[
'group'
][
'end'
]
-
$edge
[
'group'
][
'start'
]
+
1
;
$column
->
htmlOptions
[
'class'
]
=
'merge'
;
$style
=
isset
(
$column
->
htmlOptions
[
'style'
])
?
$column
->
htmlOptions
[
'style'
]
:
''
;
$column
->
htmlOptions
[
'style'
]
=
$style
.
';'
.
$this
->
mergeCellCss
;
$column
->
renderDataCell
(
$row
);
$column
->
htmlOptions
=
$options
;
}
break
;
case
self
::
MERGE_FIRSTROW
:
if
(
isset
(
$edge
[
'start'
]))
{
$column
->
renderDataCell
(
$row
);
}
else
{
echo
'<td></td>'
;
}
break
;
}
}
echo
"</tr>
\n
"
;
//extraRowPos = after
if
(
count
(
$this
->
extraRowColumns
)
&&
$this
->
extraRowPos
==
'below'
&&
isset
(
$extraRowEdge
[
'end'
]))
{
$this
->
renderExtraRow
(
$row
,
$extraRowEdge
[
'group'
][
'totals'
]);
}
}
/**
* returns array of rendered column values (TD)
*
* @param mixed $columns
* @param mixed $rowIndex
*/
private
function
getRowValues
(
$columns
,
$data
,
$rowIndex
)
{
foreach
(
$columns
as
$column
)
{
if
(
$column
instanceOf
CGridColumn
)
{
$result
[
$column
->
name
]
=
$this
->
getDataCellContent
(
$column
,
$data
,
$rowIndex
);
}
elseif
(
is_string
(
$column
))
{
if
(
is_array
(
$data
)
&&
array_key_exists
(
$column
,
$data
))
{
$result
[
$column
]
=
$data
[
$column
];
}
elseif
(
$data
instanceOf
CModel
&&
$data
->
hasAttribute
(
$column
))
{
$result
[
$column
]
=
$data
->
getAttribute
(
$column
);
}
else
{
throw
new
CException
(
'Column or attribute "'
.
$column
.
'" not found!'
);
}
}
}
return
$result
;
}
/**
* renders extra row
*
* @param mixed $row
* @param mixed $change
*/
private
function
renderExtraRow
(
$row
,
$totals
)
{
$data
=
$this
->
dataProvider
->
data
[
$row
];
if
(
$this
->
extraRowExpression
)
{
//user defined expression, use it!
$content
=
$this
->
evaluateExpression
(
$this
->
extraRowExpression
,
array
(
'data'
=>
$data
,
'row'
=>
$row
,
'totals'
=>
$totals
));
}
else
{
//generate value
$values
=
array
();
foreach
(
$this
->
extraRowColumns
as
$colName
)
{
$values
[]
=
CHtml
::
encode
(
CHtml
::
value
(
$data
,
$colName
));
}
$content
=
'<strong>'
.
implode
(
' :: '
,
$values
)
.
'</strong>'
;
}
$colspan
=
count
(
$this
->
columns
);
echo
'<tr>'
;
echo
'<td class="extrarow" colspan="'
.
$colspan
.
'">'
.
$content
.
'</td>'
;
echo
'</tr>'
;
}
/**
* need to rewrite this function as it is protected in CDataColumn: it is strange as all methods inside are public
*
* @param mixed $column
* @param mixed $row
* @param mixed $data
*/
private
function
getDataCellContent
(
$column
,
$data
,
$row
)
{
if
(
$column
->
value
!==
null
)
$value
=
$column
->
evaluateExpression
(
$column
->
value
,
array
(
'data'
=>
$data
,
'row'
=>
$row
));
else
if
(
$column
->
name
!==
null
)
$value
=
CHtml
::
value
(
$data
,
$column
->
name
);
return
$value
===
null
?
$column
->
grid
->
nullDisplay
:
$column
->
grid
->
getFormatter
()
->
format
(
$value
,
$column
->
type
);
}
/**
* Is current row start or end of group in particular column
*/
private
function
isGroupEdge
(
$colName
,
$row
)
{
$result
=
array
();
foreach
(
$this
->
_groups
[
$colName
]
as
$index
=>
$v
)
{
if
(
$v
[
'start'
]
==
$row
)
{
$result
[
'start'
]
=
$row
;
$result
[
'group'
]
=
$v
;
}
if
(
$v
[
'end'
]
==
$row
)
{
$result
[
'end'
]
=
$row
;
$result
[
'group'
]
=
$v
;
}
if
(
count
(
$result
))
break
;
}
return
$result
;
}
}
\ No newline at end of file
protected/extensions/groupgridview/CHANGELOG.txt
0 → 100644
View file @
55edb8da
Groupgridview changelog
=============================
Version 1.3 May 03, 2013
----------------------------
[enh]: added param `extraRowTotals' (@vitalets)
[enh]: added param `extraRowPos' (@vitalets)
Version 1.2 Dec 16, 2012
----------------------------
[enh #1]: Compability with Yii-Bootstrap 1.0 and above (@Yiivgeny)
Version 1.1 Apr 3, 2012
----------------------------
[bug] fixed 'name' issue with CLinkColumn & CButtonColumn (@vitalets)
[enh] added support of Bootstrap gridview (@vitalets)
Version 1.0 Apr 1, 2012
----------------------------
Initial release
\ No newline at end of file
protected/extensions/groupgridview/GroupGridView.php
0 → 100644
View file @
55edb8da
<?php
Yii
::
import
(
'zii.widgets.grid.CGridView'
);
/**
* A Grid View that groups rows by any column(s)
*
* @category User Interface
* @package extensions
* @author Vitaliy Potapov <noginsk@rambler.ru>
* @version 1.3
*/
class
GroupGridView
extends
CGridView
{
//column values are merged independently
const
MERGE_SIMPLE
=
'simple'
;
//column values are merged if at least one value of nested columns changes (makes sense when several columns in $mergeColumns option)
const
MERGE_NESTED
=
'nested'
;
//column values are merged independently, but value is shown in first row of group and below cells just cleared (instead of `rowspan`)
const
MERGE_FIRSTROW
=
'firstrow'
;
public
$mergeColumns
=
array
();
public
$mergeType
=
self
::
MERGE_SIMPLE
;
public
$mergeCellCss
=
'text-align: center; vertical-align: middle'
;
//list of columns on which change extrarow will be triggered
public
$extraRowColumns
=
array
();
//expression to get value shown in extrarow
public
$extraRowExpression
;
//position of extraRow relative to group: 'above' | 'below'
public
$extraRowPos
=
'above'
;
//totals expression: function($data, $row, &$totals)
public
$extraRowTotals
;
//array with groups
private
$_groups
=
array
();
public
function
renderTableBody
()
{
if
(
!
empty
(
$this
->
mergeColumns
)
||
!
empty
(
$this
->
extraRowColumns
))
{
$this
->
groupByColumns
();
}
parent
::
renderTableBody
();
}
/**
* find and store changing of group columns
*
* @param mixed $data
*/
public
function
groupByColumns
()
{
$data
=
$this
->
dataProvider
->
getData
();
if
(
count
(
$data
)
==
0
)
return
;
if
(
!
is_array
(
$this
->
mergeColumns
))
$this
->
mergeColumns
=
array
(
$this
->
mergeColumns
);
if
(
!
is_array
(
$this
->
extraRowColumns
))
$this
->
extraRowColumns
=
array
(
$this
->
extraRowColumns
);
//store columns for group. Set object for existing columns in grid and string for attributes
$groupColumns
=
array_unique
(
array_merge
(
$this
->
mergeColumns
,
$this
->
extraRowColumns
));
foreach
(
$groupColumns
as
$key
=>
$colName
)
{
foreach
(
$this
->
columns
as
$column
)
{
if
(
property_exists
(
$column
,
'name'
)
&&
$column
->
name
==
$colName
)
{
$groupColumns
[
$key
]
=
$column
;
break
;
}
}
}
//storage for groups in each column
$groups
=
array
();
//values for first row
$values
=
$this
->
getRowValues
(
$groupColumns
,
$data
[
0
],
0
);
foreach
(
$values
as
$colName
=>
$value
)
{
$groups
[
$colName
][]
=
array
(
'value'
=>
$value
,
'column'
=>
$colName
,
'start'
=>
0
,
//end - later
//totals - later
);
}
//calc totals for the first row
$totals
=
array
();
if
(
$this
->
extraRowTotals
)
{
$this
->
evaluateExpression
(
$this
->
extraRowTotals
,
array
(
'data'
=>
$data
[
0
],
'row'
=>
0
,
'totals'
=>
&
$totals
));
}
//iterate data
for
(
$i
=
1
;
$i
<
count
(
$data
);
$i
++
)
{
//save row values in array
$current
=
$this
->
getRowValues
(
$groupColumns
,
$data
[
$i
],
$i
);
//define is change occured. Need this extra foreach for correctly proceed extraRows
$changedColumns
=
array
();
foreach
(
$current
as
$colName
=>
$curValue
)
{
$prev
=
end
(
$groups
[
$colName
]);
if
(
$curValue
!=
$prev
[
'value'
])
{
$changedColumns
[]
=
$colName
;
}
}
/*
if this flag = true -> we will write change for all grouping columns.
It's required when change of any column from extraRowColumns occurs
*/
$extraRowColumnChanged
=
(
count
(
array_intersect
(
$changedColumns
,
$this
->
extraRowColumns
))
>
0
);
/*
this changeOccured related to foreach below. It is required only for mergeType == self::MERGE_NESTED,
to write change for all nested columns when change of previous column occured
*/
$changeOccured
=
false
;
foreach
(
$current
as
$colName
=>
$curValue
)
{
//value changed
$valueChanged
=
in_array
(
$colName
,
$changedColumns
);
//change already occured in this loop and mergeType set to MERGETYPE_NESTED
$saveChange
=
$valueChanged
||
(
$changeOccured
&&
$this
->
mergeType
==
self
::
MERGE_NESTED
);
if
(
$extraRowColumnChanged
||
$saveChange
)
{
$changeOccured
=
true
;
$lastIndex
=
count
(
$groups
[
$colName
])
-
1
;
//finalize prev group
$groups
[
$colName
][
$lastIndex
][
'end'
]
=
$i
-
1
;
$groups
[
$colName
][
$lastIndex
][
'totals'
]
=
$totals
;
//begin new group
$groups
[
$colName
][]
=
array
(
'start'
=>
$i
,
'column'
=>
$colName
,
'value'
=>
$curValue
,
);
}
}
//if change in extrarowcolumn --> reset totals
if
(
$extraRowColumnChanged
)
{
$totals
=
array
();
}
//calc totals for that row
if
(
$this
->
extraRowTotals
)
{
$this
->
evaluateExpression
(
$this
->
extraRowTotals
,
array
(
'data'
=>
$data
[
$i
],
'row'
=>
$i
,
'totals'
=>
&
$totals
));
}
}
//finalize group for last row
foreach
(
$groups
as
$colName
=>
$v
)
{
$lastIndex
=
count
(
$groups
[
$colName
])
-
1
;
$groups
[
$colName
][
$lastIndex
][
'end'
]
=
count
(
$data
)
-
1
;
$groups
[
$colName
][
$lastIndex
][
'totals'
]
=
$totals
;
}
$this
->
_groups
=
$groups
;
}
public
function
renderTableRow
(
$row
)
{
$extraRowEdge
=
null
;
if
(
count
(
$this
->
extraRowColumns
))
{
$colName
=
$this
->
extraRowColumns
[
0
];
$extraRowEdge
=
$this
->
isGroupEdge
(
$colName
,
$row
);
if
(
$this
->
extraRowPos
==
'above'
&&
isset
(
$extraRowEdge
[
'start'
]))
{
$this
->
renderExtraRow
(
$row
,
$extraRowEdge
[
'group'
][
'totals'
]);
}
}
/*
if($this->_changes && array_key_exists($row, $this->_changes)) {
$change = $this->_changes[$row];
//if change in extracolumns --> put extra row
$columnsInExtra = array_intersect(array_keys($change['columns']), $this->extraRowColumns);
//extraRowPos = before
if(count($columnsInExtra) > 0 && $this->extraRowPos == 'before') {
$this->renderExtraRow($row, $this->_changes[$row], $columnsInExtra);
}
}
*/
// original CGridView code
if
(
$this
->
rowCssClassExpression
!==
null
)
{
$data
=
$this
->
dataProvider
->
data
[
$row
];
echo
'<tr class="'
.
$this
->
evaluateExpression
(
$this
->
rowCssClassExpression
,
array
(
'row'
=>
$row
,
'data'
=>
$data
))
.
'">'
;
}
else
if
(
is_array
(
$this
->
rowCssClass
)
&&
(
$n
=
count
(
$this
->
rowCssClass
))
>
0
)
echo
'<tr class="'
.
$this
->
rowCssClass
[
$row
%
$n
]
.
'">'
;
else
echo
'<tr>'
;
foreach
(
$this
->
columns
as
$column
)
{
$isGroupColumn
=
property_exists
(
$column
,
'name'
)
&&
in_array
(
$column
->
name
,
$this
->
mergeColumns
);
if
(
!
$isGroupColumn
)
{
$column
->
renderDataCell
(
$row
);
continue
;
}
//is curent row appears on edge of group
$edge
=
$this
->
isGroupEdge
(
$column
->
name
,
$row
);
switch
(
$this
->
mergeType
)
{
case
self
::
MERGE_SIMPLE
:
case
self
::
MERGE_NESTED
:
if
(
isset
(
$edge
[
'start'
]))
{
$options
=
$column
->
htmlOptions
;
$column
->
htmlOptions
[
'rowspan'
]
=
$edge
[
'group'
][
'end'
]
-
$edge
[
'group'
][
'start'
]
+
1
;
$column
->
htmlOptions
[
'class'
]
=
'merge'
;
$style
=
isset
(
$column
->
htmlOptions
[
'style'
])
?
$column
->
htmlOptions
[
'style'
]
:
''
;
$column
->
htmlOptions
[
'style'
]
=
$style
.
';'
.
$this
->
mergeCellCss
;
$column
->
renderDataCell
(
$row
);
$column
->
htmlOptions
=
$options
;
}
break
;
case
self
::
MERGE_FIRSTROW
:
if
(
isset
(
$edge
[
'start'
]))
{
$column
->
renderDataCell
(
$row
);
}
else
{
echo
'<td></td>'
;
}
break
;
}
}
echo
"</tr>
\n
"
;
//extraRowPos = after
if
(
count
(
$this
->
extraRowColumns
)
&&
$this
->
extraRowPos
==
'below'
&&
isset
(
$extraRowEdge
[
'end'
]))
{
$this
->
renderExtraRow
(
$row
,
$extraRowEdge
[
'group'
][
'totals'
]);
}
}
/**
* returns array of rendered column values (TD)
*
* @param mixed $columns
* @param mixed $rowIndex
*/
private
function
getRowValues
(
$columns
,
$data
,
$rowIndex
)
{
foreach
(
$columns
as
$column
)
{
if
(
$column
instanceOf
CGridColumn
)
{
$result
[
$column
->
name
]
=
$this
->
getDataCellContent
(
$column
,
$data
,
$rowIndex
);
}
elseif
(
is_string
(
$column
))
{
if
(
is_array
(
$data
)
&&
array_key_exists
(
$column
,
$data
))
{
$result
[
$column
]
=
$data
[
$column
];
}
elseif
(
$data
instanceOf
CModel
&&
$data
->
hasAttribute
(
$column
))
{
$result
[
$column
]
=
$data
->
getAttribute
(
$column
);
}
else
{
throw
new
CException
(
'Column or attribute "'
.
$column
.
'" not found!'
);
}
}
}
return
$result
;
}
/**
* renders extra row
*
* @param mixed $row
* @param mixed $change
*/
private
function
renderExtraRow
(
$row
,
$totals
)
{
$data
=
$this
->
dataProvider
->
data
[
$row
];
if
(
$this
->
extraRowExpression
)
{
//user defined expression, use it!
$content
=
$this
->
evaluateExpression
(
$this
->
extraRowExpression
,
array
(
'data'
=>
$data
,
'row'
=>
$row
,
'totals'
=>
$totals
));
}
else
{
//generate value
$values
=
array
();
foreach
(
$this
->
extraRowColumns
as
$colName
)
{
$values
[]
=
CHtml
::
encode
(
CHtml
::
value
(
$data
,
$colName
));
}
$content
=
'<strong>'
.
implode
(
' :: '
,
$values
)
.
'</strong>'
;
}
$colspan
=
count
(
$this
->
columns
);
echo
'<tr>'
;
echo
'<td class="extrarow" colspan="'
.
$colspan
.
'">'
.
$content
.
'</td>'
;
echo
'</tr>'
;
}
/**
* need to rewrite this function as it is protected in CDataColumn: it is strange as all methods inside are public
*
* @param mixed $column
* @param mixed $row
* @param mixed $data
*/
private
function
getDataCellContent
(
$column
,
$data
,
$row
)
{
if
(
$column
->
value
!==
null
)
$value
=
$column
->
evaluateExpression
(
$column
->
value
,
array
(
'data'
=>
$data
,
'row'
=>
$row
));
else
if
(
$column
->
name
!==
null
)
$value
=
CHtml
::
value
(
$data
,
$column
->
name
);
return
$value
===
null
?
$column
->
grid
->
nullDisplay
:
$column
->
grid
->
getFormatter
()
->
format
(
$value
,
$column
->
type
);
}
/**
* Is current row start or end of group in particular column
*/
private
function
isGroupEdge
(
$colName
,
$row
)
{
$result
=
array
();
foreach
(
$this
->
_groups
[
$colName
]
as
$index
=>
$v
)
{
if
(
$v
[
'start'
]
==
$row
)
{
$result
[
'start'
]
=
$row
;
$result
[
'group'
]
=
$v
;
}
if
(
$v
[
'end'
]
==
$row
)
{
$result
[
'end'
]
=
$row
;
$result
[
'group'
]
=
$v
;
}
if
(
count
(
$result
))
break
;
}
return
$result
;
}
}
protected/extensions/groupgridview/README.md
0 → 100644
View file @
55edb8da
groupgridview
=============
Yii extension to group data in your grid
Please see
**[demo](http://groupgridview.demopage.ru)**
for details
\ No newline at end of file
protected/models/LoginForm.php
View file @
55edb8da
...
@@ -20,11 +20,13 @@ class LoginForm extends CFormModel {
...
@@ -20,11 +20,13 @@ class LoginForm extends CFormModel {
public
function
rules
()
{
public
function
rules
()
{
return
array
(
return
array
(
// username and password are required
// username and password are required
array
(
'username, password'
,
'required'
),
array
(
'username, password'
,
'required'
,
'message'
=>
'{attribute} tidak boleh kosong.'
),
// rememberMe needs to be a boolean
// rememberMe needs to be a boolean
array
(
'rememberMe'
,
'boolean'
),
array
(
'rememberMe'
,
'boolean'
),
// password needs to be authenticated
// password needs to be authenticated
array
(
'password'
,
'authenticate'
),
array
(
'password'
,
'authenticate'
,
'message'
=>
'{attribute} salah.'
),
);
);
}
}
...
@@ -45,7 +47,7 @@ class LoginForm extends CFormModel {
...
@@ -45,7 +47,7 @@ class LoginForm extends CFormModel {
if
(
!
$this
->
hasErrors
())
{
if
(
!
$this
->
hasErrors
())
{
$this
->
_identity
=
new
UserIdentity
(
$this
->
username
,
$this
->
password
);
$this
->
_identity
=
new
UserIdentity
(
$this
->
username
,
$this
->
password
);
if
(
!
$this
->
_identity
->
authenticate
())
if
(
!
$this
->
_identity
->
authenticate
())
$this
->
addError
(
'password'
,
'
Incorrect username or password
.'
);
$this
->
addError
(
'password'
,
'
Username atau Password salah
.'
);
}
}
}
}
...
...
protected/models/MJadwal.php
View file @
55edb8da
...
@@ -85,11 +85,11 @@ class MJadwal extends CActiveRecord {
...
@@ -85,11 +85,11 @@ class MJadwal extends CActiveRecord {
$criteria
=
new
CDbCriteria
;
$criteria
=
new
CDbCriteria
;
$criteria
->
compare
(
'ID'
,
$this
->
ID
);
$criteria
->
compare
(
'ID'
,
$this
->
ID
,
true
);
$criteria
->
compare
(
'WEEK'
,
$this
->
WEEK
);
$criteria
->
compare
(
'WEEK'
,
$this
->
WEEK
,
true
);
$criteria
->
compare
(
'TANGGAL'
,
$this
->
TANGGAL
,
true
);
$criteria
->
compare
(
'TANGGAL'
,
$this
->
TANGGAL
,
true
);
$criteria
->
compare
(
'TA'
,
$this
->
TA
);
$criteria
->
compare
(
'TA'
,
$this
->
TA
,
true
);
$criteria
->
compare
(
'ID_KUR'
,
$this
->
ID_KUR
);
$criteria
->
compare
(
'ID_KUR'
,
$this
->
ID_KUR
,
true
);
$criteria
->
compare
(
'KELAS'
,
$this
->
KELAS
,
true
);
$criteria
->
compare
(
'KELAS'
,
$this
->
KELAS
,
true
);
return
new
CActiveDataProvider
(
$this
,
array
(
return
new
CActiveDataProvider
(
$this
,
array
(
...
...
protected/views/beritaAcaraKuliah/LaporanBeritaAcaraKuliah.php
View file @
55edb8da
<?php
<?php
$kelas
=
"41B"
;
$kelas
=
"41B"
;
$mata_kuliah
=
"IF411111"
;
$mata_kuliah
=
"IF411111"
;
$model
=
BeritaAcaraDaftarHadir
::
model
()
->
findAllByAttributes
(
array
(
'TANGGAL'
=>
$message
,
'KODE_MK'
=>
$mata_kuliah
));
$model
=
BeritaAcaraDaftarHadir
::
model
()
->
findAllByAttributes
(
array
(
'TANGGAL'
=>
$message
,
'KODE_MK'
=>
$mata_kuliah
));
$model2
=
Jadwal
::
model
()
->
findAllByAttributes
(
array
(
'TANGGAL'
=>
$message
,
'KODE_MK'
=>
$mata_kuliah
));
$model2
=
Jadwal
::
model
()
->
findAllByAttributes
(
array
(
'TANGGAL'
=>
$message
,
'KODE_MK'
=>
$mata_kuliah
));
$model3
=
BeritaAcaraDaftarHadir
::
model
()
->
findAllByAttributes
(
array
(
'TANGGAL'
=>
$message
,
'KODE_MK'
=>
$mata_kuliah
));
$model3
=
BeritaAcaraDaftarHadir
::
model
()
->
findAllByAttributes
(
array
(
'TANGGAL'
=>
$message
,
'KODE_MK'
=>
$mata_kuliah
));
$mkul
=
Kurikulum
::
model
()
->
findByAttributes
(
array
(
'KODE_MK'
=>
$mata_kuliah
));
$mkul
=
Kurikulum
::
model
()
->
findByAttributes
(
array
(
'KODE_MK'
=>
$mata_kuliah
));
$dosen
=
Pengajar
::
model
()
->
findByAttributes
(
array
(
'KODE_MK'
=>
$mata_kuliah
));
$dosen
=
Pengajar
::
model
()
->
findByAttributes
(
array
(
'KODE_MK'
=>
$mata_kuliah
));
$criteriaDataIb
=
new
CDbCriteria
();
$criteriaDataIb
=
new
CDbCriteria
();
$criteriaDataIb
->
condition
=
'KODE_MK = :kodemk'
;
$criteriaDataIb
->
condition
=
'KODE_MK = :kodemk'
;
$criteriaDataIb
->
order
=
'ID DESC'
;
$criteriaDataIb
->
order
=
'ID DESC'
;
$criteriaDataIb
->
limit
=
1
;
$criteriaDataIb
->
limit
=
1
;
$criteriaDataIb
->
params
=
array
(
'kodemk'
=>
$mata_kuliah
);
$criteriaDataIb
->
params
=
array
(
'kodemk'
=>
$mata_kuliah
);
$tajaran
=
Jadwal
::
model
()
->
find
(
$criteriaDataIb
);
$tajaran
=
Jadwal
::
model
()
->
find
(
$criteriaDataIb
);
$imagePath
=
Yii
::
getPathOfAlias
(
'application.icons'
);
$imagePath
=
Yii
::
getPathOfAlias
(
'application.icons'
);
$baseUrl
=
Yii
::
app
()
->
assetManager
->
publish
(
$imagePath
);
$baseUrl
=
Yii
::
app
()
->
assetManager
->
publish
(
$imagePath
);
?>
?>
<table>
<table>
<tr>
<tr>
...
@@ -100,31 +100,32 @@
...
@@ -100,31 +100,32 @@
<tr
style=
"background-color:gray"
;
>
<tr
style=
"background-color:gray"
;
>
<td
width=
"70"
>
SESI
</td>
<td
width=
"70"
>
SESI
</td>
<?php
<?php
foreach
(
$model2
as
$item2
)
foreach
(
$model2
as
$item2
)
{
{
?>
?>
<td
width=
"30"
>
<?php
echo
$item2
[
'SESSION'
];
?>
</td>
<td
width=
"30"
>
<?php
echo
$item2
[
'SESSION'
];
?>
</td>
<?php
<?php
}
}
?>
?>
</tr>
</tr>
<?php
<?php
$x
=
1
;
$x
=
1
;
foreach
(
$model
as
$item
)
foreach
(
$model
as
$item
)
{
{
?>
?>
<tr>
<tr>
<td>
<?php
echo
$x
;
?>
</td>
<td>
<?php
echo
$x
;
?>
</td>
<td>
<?php
echo
$item
[
'NIM'
];
?>
</td>
<td>
<?php
echo
$item
[
'NIM'
];
?>
</td>
<td
colspan=
"2"
>
<?php
$nama
=
Dim
::
model
()
->
findByAttributes
(
array
(
'NIM'
=>
$item
[
'NIM'
]));
echo
$nama
->
NAMA
;
?>
</td>
<td
colspan=
"2"
>
<?php
<td>
<?php
echo
$item
[
'STATUS'
]
?>
</td>
$nama
=
Dim
::
model
()
->
findByAttributes
(
array
(
'NIM'
=>
$item
[
'NIM'
]));
<td>
<?php
echo
$item
[
'STATUS'
]
?>
</td>
echo
$nama
->
NAMA
;
<td>
<?php
echo
$item
[
'STATUS'
]
?>
</td>
?>
</td>
<td>
<?php
echo
$item
[
'STATUS'
]
?>
</td>
<td>
<?php
echo
$item
[
'STATUS'
]
?>
</td>
<td>
<?php
echo
$item
[
'STATUS'
]
?>
</td>
</tr>
</tr>
<?php
<?php
$x
+=
1
;
$x
+=
1
;
}
}
?>
?>
</table>
</table>
\ No newline at end of file
protected/views/beritaAcaraKuliah/adminyDate.php
View file @
55edb8da
...
@@ -3,17 +3,16 @@
...
@@ -3,17 +3,16 @@
<table
style=
"border-collapse:collapse;background:white"
>
<table
style=
"border-collapse:collapse;background:white"
>
<tr>
<tr>
<td
style=
"background:#cccccc;width:50%;"
>
<center>
<td
style=
"background:#cccccc;width:50%;"
>
<h2>
Choose the Date!
<
h2><hr>
<h2>
Choose the Date!
</
h2><hr>
</td>
</td>
<td
style=
"background:#e4e4e4;width:50%;"
>
<td
style=
"background:#e4e4e4;width:50%;"
>
<center>
<center>
<?php
$this
->
widget
(
'ext.simple-calendar.SimpleCalendarWidget'
);
?>
</center>
<?php
$this
->
widget
(
'ext.simple-calendar.SimpleCalendarWidget'
);
?>
</center>
</td>
</td>
<td>
</td>
<td>
</td>
<td
align=
"right"
valign=
"middle"
border=
"4"
>
<td
align=
"right"
valign=
"middle"
border=
"4"
>
<center>
<h2>
<h2>
Laporan Berita Acara tanggal
<?php
echo
$wew
?
>
<center>
Laporan Berita Acara tanggal
<?php
echo
$wew
?>
</center
>
</h2>
</h2>
<hr>
<hr>
<?php
<?php
...
@@ -66,9 +65,9 @@
...
@@ -66,9 +65,9 @@
),
),
),
),
));
));
?>
</center
>
?
>
</td>
</td>
<
tr>
</
tr>
</table>
</table>
protected/views/dJadwal/_formDJadwal.php
View file @
55edb8da
...
@@ -9,19 +9,19 @@ $form = $this->beginWidget('booster.widgets.TbActiveForm', array(
...
@@ -9,19 +9,19 @@ $form = $this->beginWidget('booster.widgets.TbActiveForm', array(
<div
class=
"row"
style=
"width:200px;float: left;"
>
<div
class=
"row"
style=
"width:200px;float: left;"
>
<?php
echo
CHtml
::
activeLabelEx
(
$model
,
'['
.
$index
.
']name'
);
?>
<?php
echo
CHtml
::
activeLabelEx
(
$model
,
'['
.
$index
.
']name'
);
?>
<?php
echo
CHtml
::
activeTextField
(
$model
,
'['
.
$index
.
']name'
,
array
(
'size'
=>
20
,
'maxlength'
=>
255
));
?>
<?php
echo
CHtml
::
activeTextField
(
$model
,
'['
.
$index
.
']name'
,
array
(
'size'
=>
20
,
'maxlength'
=>
255
));
?>
<?php
echo
CHtml
::
error
(
$model
,
'['
.
$index
.
']name'
);
?>
<?php
echo
CHtml
::
error
(
$model
,
'['
.
$index
.
']name'
);
?>
</div>
</div>
<div
class=
"row"
style=
"width:200px;float: left;"
>
<div
class=
"row"
style=
"width:200px;float: left;"
>
<?php
echo
CHtml
::
activeLabelEx
(
$model
,
'['
.
$index
.
']age'
);
?>
<?php
echo
CHtml
::
activeLabelEx
(
$model
,
'['
.
$index
.
']age'
);
?>
<?php
echo
CHtml
::
activeTextField
(
$model
,
'['
.
$index
.
']age'
);
?>
<?php
echo
CHtml
::
activeTextField
(
$model
,
'['
.
$index
.
']age'
);
?>
<?php
echo
CHtml
::
error
(
$model
,
'['
.
$index
.
']age'
);
?>
<?php
echo
CHtml
::
error
(
$model
,
'['
.
$index
.
']age'
);
?>
</div>
</div>
<div
class=
"row"
style=
"width:100px;float: left;"
>
<div
class=
"row"
style=
"width:100px;float: left;"
>
<br
/>
<br
/>
<?php
echo
CHtml
::
link
(
'Delete'
,
'#'
,
array
(
'onclick'
=>
'deleteChild(this, '
.
$index
.
'); return false;'
));
<?php
echo
CHtml
::
link
(
'Delete'
,
'#'
,
array
(
'onclick'
=>
'deleteChild(this, '
.
$index
.
'); return false;'
));
?>
?>
</div>
</div>
</div>
</div>
...
...
protected/views/mJadwal/_form.php
View file @
55edb8da
...
@@ -88,7 +88,7 @@ echo $form->dropDownListGroup(
...
@@ -88,7 +88,7 @@ echo $form->dropDownListGroup(
'ajax'
=>
array
(
'ajax'
=>
array
(
'type'
=>
'POST'
,
'type'
=>
'POST'
,
'url'
=>
CController
::
createUrl
(
'MJadwal/matkul'
),
'url'
=>
CController
::
createUrl
(
'MJadwal/matkul'
),
// 'update' => '#' . CHtml::activeID($djadwal, '[' . $a . ']KODE_MK')
'update'
=>
'#DJadwal_0_KODE_MK,#DJadwal_1_KODE_MK,#DJadwal_2_KODE_MK,#DJadwal_3_KODE_MK,#DJadwal_4_KODE_MK,#DJadwal_5_KODE_MK,#DJadwal_6_KODE_MK,#DJadwal_7_KODE_MK'
),
),
),
),
)
)
...
@@ -104,7 +104,7 @@ echo $form->dropDownListGroup(
...
@@ -104,7 +104,7 @@ echo $form->dropDownListGroup(
<?php
// echo $form->textFieldGroup($djadwal, '[' . $i . ']SESSION', array('widgetOptions' => array('htmlOptions' => array('class' => 'span5', 'placeholder' => 'Sesi')))); ?>
<?php
// echo $form->textFieldGroup($djadwal, '[' . $i . ']SESSION', array('widgetOptions' => array('htmlOptions' => array('class' => 'span5', 'placeholder' => 'Sesi')))); ?>
Sesi
Kosong
?
<
input
type
=
"checkbox"
name
=
"formsesi[]
"
value
=
"Yes"
/>
Sesi
Kosong
?
<
input
type
=
"checkbox"
name
=
"formsesi<?php echo
$i
?>
"
value
=
"Yes"
/>
<
BR
>
<
BR
>
<
BR
>
<
BR
>
<?
php
<?
php
...
@@ -120,14 +120,15 @@ echo $form->dropDownListGroup(
...
@@ -120,14 +120,15 @@ echo $form->dropDownListGroup(
'htmlOptions'
=>
array
(
'htmlOptions'
=>
array
(
'ajax'
=>
array
(
'ajax'
=>
array
(
'type'
=>
'POST'
,
'type'
=>
'POST'
,
'url'
=>
CController
::
createUrl
(
'
Jadwal/deskripsi'
),
'url'
=>
CController
::
createUrl
(
'
MJadwal/deskripsi&id='
.
$i
),
'update'
=>
'#agan'
'update'
=>
"#matkul
$i
"
)
)
),
),
)
)
)
)
);
);
?>
?>
<div
id=
"matkul
<?php
echo
$i
;
?>
"
class=
"alert alert-info"
></div>
<?php
<?php
$data
=
CHtml
::
listData
(
Ruangan
::
model
()
->
findAll
(),
'ID'
,
'SHORT_NAME'
);
$data
=
CHtml
::
listData
(
Ruangan
::
model
()
->
findAll
(),
'ID'
,
'SHORT_NAME'
);
...
...
protected/views/mJadwal/admin.php
View file @
55edb8da
<?php
<?php
$this
->
breadcrumbs
=
array
(
$this
->
breadcrumbs
=
array
(
'Mjadwals'
=>
array
(
'index'
),
'Mjadwals'
=>
array
(
'index'
),
'Manage'
,
'Manage'
,
);
);
$this
->
menu
=
array
(
$this
->
menu
=
array
(
array
(
'label'
=>
'List MJadwal'
,
'url'
=>
array
(
'index'
)),
array
(
'label'
=>
'List MJadwal'
,
'url'
=>
array
(
'index'
)),
array
(
'label'
=>
'Create MJadwal'
,
'url'
=>
array
(
'create'
)),
array
(
'label'
=>
'Create MJadwal'
,
'url'
=>
array
(
'create'
)),
);
);
Yii
::
app
()
->
clientScript
->
registerScript
(
'search'
,
"
Yii
::
app
()
->
clientScript
->
registerScript
(
'search'
,
"
...
@@ -31,26 +31,30 @@ return false;
...
@@ -31,26 +31,30 @@ return false;
or
<b>
=
</b>
) at the beginning of each of your search values to specify how the comparison should be done.
or
<b>
=
</b>
) at the beginning of each of your search values to specify how the comparison should be done.
</p>
</p>
<?php
echo
CHtml
::
link
(
'Advanced Search'
,
'#'
,
array
(
'class'
=>
'search-button btn'
));
?>
<?php
echo
CHtml
::
link
(
'Advanced Search'
,
'#'
,
array
(
'class'
=>
'search-button btn'
));
?>
<div
class=
"search-form"
style=
"display:none"
>
<div
class=
"search-form"
style=
"display:none"
>
<?php
$this
->
renderPartial
(
'_search'
,
array
(
<?php
'model'
=>
$model
,
$this
->
renderPartial
(
'_search'
,
array
(
));
?>
'model'
=>
$model
,
));
?>
</div>
<!-- search-form -->
</div>
<!-- search-form -->
<?php
$this
->
widget
(
'booster.widgets.TbGridView'
,
array
(
<?php
'id'
=>
'mjadwal-grid'
,
$this
->
widget
(
'booster.widgets.TbGridView'
,
array
(
'dataProvider'
=>
$model
->
search
(),
'id'
=>
'mjadwal-grid'
,
'filter'
=>
$model
,
'dataProvider'
=>
$model
->
search
(),
'columns'
=>
array
(
'filter'
=>
$model
,
'columns'
=>
array
(
'ID'
,
'ID'
,
'WEEK'
,
'WEEK'
,
'TANGGAL'
,
'TANGGAL'
,
'TA'
,
'TA'
,
'ID_KUR'
,
'ID_KUR'
,
'KELAS'
,
'KELAS'
,
array
(
array
(
'class'
=>
'booster.widgets.TbButtonColumn'
,
'class'
=>
'booster.widgets.TbButtonColumn'
,
),
),
),
),
));
?>
));
?>
protected/views/mJadwal/index.php
View file @
55edb8da
...
@@ -3,10 +3,174 @@
...
@@ -3,10 +3,174 @@
</div>
</div>
<?php
<?php
$this
->
widget
(
'booster.widgets.TbListView'
,
array
(
// Script
'dataProvider'
=>
$dataProvider
,
Yii
::
app
()
->
clientScript
->
registerScript
(
'search'
,
"
'itemView'
=>
'_view'
,
$('.search-button').click(function(){
));
$('.search-form').toggle();
return false;
});
$('.search-form form').submit(function(){
$.fn.yiiGridView.update('mjadwal-grid', {
data: $(this).serialize()
});
return false;
});
"
);
Yii
::
app
()
->
clientScript
->
registerScript
(
're-install-date-picker'
,
"
function reinstallDatePicker(id, data) {
//use the same parameters that you had set in your widget else the datepicker will be refreshed by default
$('#datepicker_for_TANGGAL').datepicker(jQuery.extend(
{
showMonthAfterYear:false},jQuery.datepicker.regional['en'],{'dateFormat':'yy-mm-dd'
}
));
}
"
);
?>
<?php
$this
->
widget
(
'booster.widgets.TbGridView'
,
array
(
'id'
=>
'mjadwal-grid'
,
'dataProvider'
=>
$model
->
search
(),
'emptyText'
=>
'Data tidak ditemukan'
,
'summaryText'
=>
'Daftar Jadwal {start} - {end} dari {count}'
,
'afterAjaxUpdate'
=>
'reinstallDatePicker'
,
// (#1)
'filter'
=>
$model
,
'columns'
=>
array
(
array
(
'header'
=>
'Minggu'
,
'name'
=>
'WEEK'
,
'value'
=>
'$data->WEEK'
,
),
array
(
'header'
=>
'Tanggal'
,
'name'
=>
'TANGGAL'
,
'filter'
=>
$this
->
widget
(
'zii.widgets.jui.CJuiDatePicker'
,
array
(
'model'
=>
$model
,
'attribute'
=>
'TANGGAL'
,
'language'
=>
'en'
,
'i18nScriptFile'
=>
'jquery.ui.datepicker-en.js'
,
'defaultOptions'
=>
array
(
'showOn'
=>
'focus'
,
'dateFormat'
=>
'yy-mm-dd'
,
'showOtherMonths'
=>
true
,
'selectOtherMonths'
=>
true
,
'changeMonth'
=>
true
,
'changeYear'
=>
true
,
),
'htmlOptions'
=>
array
(
'size'
=>
'10'
,
// textField size
'maxlength'
=>
'10'
,
// textField maxlength
'id'
=>
'datepicker_for_TANGGAL'
,
),
),
true
),
),
array
(
'header'
=>
'Kelas'
,
'name'
=>
'KELAS'
,
'value'
=>
'$data->KELAS'
,
),
array
(
'header'
=>
'Tahun Ajaran'
,
'name'
=>
'TA'
,
'value'
=>
'$data->TA'
,
),
array
(
'header'
=>
'Kurikulum'
,
'name'
=>
'ID_KUR'
,
'value'
=>
'$data->ID_KUR'
,
),
array
(
'class'
=>
'booster.widgets.TbButtonColumn'
,
),
),
));
?>
<?php
//$this->widget('zii.widgets.grid.CGridView', array(
// 'id' => 'jadwal-grid',
// 'dataProvider' => $dataProvider->search(),
// 'emptyText' => 'Data tidak ditemukan',
// 'summaryText' => 'Daftar Jadwal {start} - {end} dari {count}',
// 'emptyText' => 'Data tidak ditemukan',
// 'filter' => $dataProvider,
// 'afterAjaxUpdate' => 'reinstallDatePicker', // (#1)
// 'columns' => array(
// array(
// 'header' => 'Minggu',
// 'name' => 'WEEK',
//// 'filter' => CHtml::listData(DaftarPelanggaran::model()->findAll(), 'ID', 'DESKRIPSI'),
// 'value' => '$data->WEEK',
// ),
// array(
// 'header' => 'Tanggal',
// 'name' => 'TANGGAL',
//// 'filter' => CHtml::listData(DaftarPelanggaran::model()->findAll(), 'ID', 'DESKRIPSI'),
// 'value' => '$data->TANGGAL',
// ),
// array(
// 'header' => 'Kelas',
// 'name' => 'KELAS',
//// 'filter' => CHtml::listData(DaftarPelanggaran::model()->findAll(), 'ID', 'DESKRIPSI'),
// 'value' => '$data->KELAS',
// ),
// array(
// 'header' => 'Tahun Ajaran',
// 'name' => 'TA',
//// 'filter' => CHtml::listData(DaftarPelanggaran::model()->findAll(), 'ID', 'DESKRIPSI'),
// 'value' => '$data->TA',
// ),
// array(
// 'header' => 'Kurikulum',
// 'name' => 'ID_KUR',
//// 'filter' => CHtml::listData(DaftarPelanggaran::model()->findAll(), 'ID', 'DESKRIPSI'),
// 'value' => '$data->ID_KUR',
// ),
//// array(
//// 'header' => 'Pelapor',
//// 'name' => 'PENGGUNA',
//// 'filter' => CHtml::listData(Pengguna::model()->findAll(), 'USERNAME', 'NAMA'),
//// 'value' => '$data->pengguna->NAMA',
//// ),
//// array(
//// 'header' => 'Mahasiswa',
//// 'name' => 'MAHASISWA',
//// 'filter' => CHtml::listData(Mahasiswa::model()->findAll(), 'USERNAME', 'NIM'),
//// 'value' => '$data->mahasiswa->NIM',
//// ),
//// array(
//// 'header' => 'Tanggal Kejadian',
//// 'name' => 'TANGGAL',
//// 'filter' => $this->widget('zii.widgets.jui.CJuiDatePicker', array(
//// 'model' => $model,
//// 'attribute' => 'TANGGAL',
//// 'language' => 'en',
//// 'i18nScriptFile' => 'jquery.ui.datepicker-en.js',
//// 'defaultOptions' => array(
//// 'showOn' => 'focus',
//// 'dateFormat' => 'yy-mm-dd',
//// 'showOtherMonths' => true,
//// 'selectOtherMonths' => true,
//// 'changeMonth' => true,
//// 'changeYear' => true,
//// ),
//// 'htmlOptions' => array(
//// 'size' => '10', // textField size
//// 'maxlength' => '10', // textField maxlength
//// 'id' => 'datepicker_for_TANGGAL',
//// ),
//// ), true),
//// //'value' => '$data->TANGGAL',
//// ),
//// array(
//// 'header' => 'Aksi',
//// 'class' => 'CButtonColumn',
//// 'template' => '{view}{addsanksi}',
//// 'buttons' => array(
//// 'addsanksi' => array(
//// 'label' => 'Beri Sanksi',
//// 'imageUrl' => Yii::app()->theme->baseUrl . '/img/ico/addSanksi.png',
//// 'url' => 'Yii::app()->createUrl(\'sanksi/addsanksi\',array(\'id\'=>\'\'.$data->ID.\'\'))',
//// ),
//// ),
//// ),
// ),
//));
?>
?>
protected/views/site/login.php
View file @
55edb8da
...
@@ -2,17 +2,13 @@
...
@@ -2,17 +2,13 @@
/* @var $this SiteController */
/* @var $this SiteController */
/* @var $model LoginForm */
/* @var $model LoginForm */
/* @var $form CActiveForm */
/* @var $form CActiveForm */
$this
->
pageTitle
=
Yii
::
app
()
->
name
.
' - Login'
;
$this
->
breadcrumbs
=
array
(
'Login'
,
);
?>
?>
<div
class=
"well"
>
<center>
<h1>
Login
</h1>
<h1>
Login
</h1>
<BR>
<div
class=
"form"
>
<div
class=
"form"
>
<?php
<?php
$form
=
$this
->
beginWidget
(
'CActiveForm'
,
array
(
$form
=
$this
->
beginWidget
(
'CActiveForm'
,
array
(
'id'
=>
'login-form'
,
'id'
=>
'login-form'
,
...
@@ -52,8 +48,17 @@ $this->breadcrumbs = array(
...
@@ -52,8 +48,17 @@ $this->breadcrumbs = array(
<BR>
<BR>
<div
class=
"row buttons"
>
<div
class=
"row buttons"
>
<?php
echo
CHtml
::
submitButton
(
'Login'
);
?>
<?php
$this
->
widget
(
'booster.widgets.TbButton'
,
array
(
'buttonType'
=>
'submit'
,
'context'
=>
'primary'
,
'label'
=>
'Masuk'
,
));
?>
</div>
</div>
<?php
$this
->
endWidget
();
?>
<?php
$this
->
endWidget
();
?>
</div>
<!-- form -->
</div>
<!-- form -->
</center>
</div>
\ No newline at end of file
themes/hebo/views/site/index.php
View file @
55edb8da
...
@@ -19,14 +19,14 @@
...
@@ -19,14 +19,14 @@
<div class="
row
-
fluid
">
<div class="
row
-
fluid
">
<ul class="
thumbnails
right
">
<ul class="
thumbnails
right
">
<li class="
span4
">
<li class="
span4
">
<div class="
thumbnail
right
">
<h3>Choose your Date of attendence</h3><hr>
<h3>Choose your Date of attendence</h3><hr>
<?php
$this->widget
('ext.simple-calendar.SimpleCalendarWidget'); ?>
<?php
$this->widget
('ext.simple-calendar.SimpleCalendarWidget'); ?>
<div>
</li>
</li>
<li class="
span8
">
<li class="
span8
">
<div class="
thumbnail
">
<h3>Berita Acara</h3><hr>
<h3>Berita Acara</h3><hr>
<?php
$collapse
=
$this->beginWidget
('ext.booster.widgets.TbCollapse'); ?>
<?php
$collapse
=
$this->beginWidget
('ext.booster.widgets.TbCollapse'); ?>
<div class="
panel
-
group
" id="
accordion
">
<div class="
panel
-
group
" id="
accordion
">
...
@@ -34,7 +34,7 @@
...
@@ -34,7 +34,7 @@
<div class="
panel
-
heading
">
<div class="
panel
-
heading
">
<h4 class="
panel
-
title
">
<h4 class="
panel
-
title
">
<a data-toggle="
collapse
" data-parent="
#accordion" href="">
<a data-toggle="
collapse
" data-parent="
#accordion" href="">
Berita
Acara
Hari
ini
Jadwal
Hari
ini
</
a
>
</
a
>
</
h4
>
</
h4
>
</
div
>
</
div
>
...
@@ -52,9 +52,14 @@
...
@@ -52,9 +52,14 @@
$this->widget
(
$this->widget
(
'booster.widgets.TbGridView', array(
'booster.widgets.TbGridView', array(
'dataProvider' =>
$gridDataProvider
,
'dataProvider' =>
$gridDataProvider
,
'emptyText' => 'Jadwal Tidak Ada',
'template' => "
{
items
}
",
'template' => "
{
items
}
",
'columns' => array(
'columns' => array(
array(
array(
'header' => 'No',
'value' => '
$this->grid
->dataProvider->pagination->offset +
$row
+1', // row is zero based
),
array(
'header' => 'Kelas',
'header' => 'Kelas',
'value' => '
$data->iddetailjadwal
->idjadwal->KELAS',
'value' => '
$data->iddetailjadwal
->idjadwal->KELAS',
),
),
...
@@ -74,21 +79,33 @@
...
@@ -74,21 +79,33 @@
'header' => 'Aktifitas',
'header' => 'Aktifitas',
'value' => '
$data->iddetailjadwal
->AKTIFITAS',
'value' => '
$data->iddetailjadwal
->AKTIFITAS',
),
),
array(
'header' => 'Aksi',
'class' => 'booster.widgets.TbButtonColumn',
'template' => '
{
view
}
',
'viewButtonUrl' => 'Yii::app()->createUrl(\'djadwal/view\',array(\'id\'=>\'\'.
$data->iddetailjadwal
->ID.\'\'))',
),
),
),
)
)
);
);
//'ID', 'SESSION', 'TA', 'ID_KUR', 'KODE_MK', 'KELAS', 'TANGGAL', 'TOPIK'
//'ID', 'SESSION', 'TA', 'ID_KUR', 'KODE_MK', 'KELAS', 'TANGGAL', 'TOPIK'
?>
?>
</div>
</div>
</div>
</div>
</div>
</li>
</li>
</ul>
</ul>
</div>
</div>
<script type="
text
/
javascript
" src="
<?
php
echo
Yii
::
app
()
->
theme
->
baseUrl
;
?>
/js/nivo-slider/jquery.nivo.slider.pack.js"></script>
<script type="text/javascript">
<script type="
text
/
javascript
" src="
<?
php
echo
Yii
::
app
()
->
theme
->
baseUrl
;
?>
/js/nivo-slider/jquery.nivo.slider.pack.js"></script>
<script type="text/javascript">
$(function() {
$(function() {
$('#slider-nivo').nivoSlider({
$('#slider-nivo').nivoSlider({
effect: 'boxRandom',
effect: 'boxRandom',
...
@@ -96,10 +113,10 @@
...
@@ -96,10 +113,10 @@
controlNav: false
controlNav: false
});
});
});
});
</script> <!--<script type="text/javascript">
</script> <!--<script type="text/javascript">
$(document).ready(function() {
$(document).ready(function() {
$('#slider-nivo2').nivoSlider();
$('#slider-nivo2').nivoSlider();
});
});
</script>-->
</script>-->
<?php
$this
->
endWidget
();
?>
<?php
$this
->
endWidget
();
?>
\ No newline at end of file
\ No newline at end of file
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment