Skip to content
GitLab
Menu
Projects
Groups
Snippets
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Menu
Open sidebar
mahara
mahara
Commits
46c705ac
Commit
46c705ac
authored
May 11, 2009
by
Richard Mansfield
Browse files
Remove default version of viewacl.tpl as raw version is more recent
parent
0b38bf00
Changes
1
Hide whitespace changes
Inline
Side-by-side
htdocs/theme/default/templates/form/viewacl.tpl
deleted
100644 → 0
View file @
0b38bf00
<input
type=
"hidden"
name=
"accesslist"
value=
""
>
<div
id=
"viewacl_lhs"
>
<div
id=
"potentialpresetitems"
></div>
<div>
<label>
{
{
str
tag
=
search
}
}
</label>
<input
type=
"text"
name=
"search"
id=
"search"
>
<select
name=
"type"
id=
"type"
>
<option
value=
"group"
>
{
{
str
tag
=
groups
}
}
</option>
<option
value=
"user"
selected=
"selected"
>
{
{
str
tag
=
users
}
}
</option>
</select>
<button
id=
"dosearch"
type=
"button"
>
{
{
str
tag
=
go
}
}
</button>
<table
id=
"results"
class=
"fullwidth"
>
<thead>
<tr>
<th></th>
<th>
{
{
str
tag
=
name
}
}
</th>
<th></th>
</tr>
</thead>
<tbody>
</tbody>
</table>
</div>
</div>
<h3>
{
{
str
tag
=
Added
section
=
view
}
}
</h3>
<div
id=
"accesslistitems"
>
</div>
<script
type=
"text/javascript"
>
var
count
=
0
;
// Utility functions
// Given a row, render it on the left hand side
function
renderPotentialPresetItem
(
item
)
{
var
addButton
=
BUTTON
(
{
'type'
:
'button'
}
,
'
{
{
str
tag
=
add
}
}
'
);
var
row
=
DIV
(
null
,
addButton
,
'
'
,
item
.
name
);
item
.
preset
=
true
;
if
(
item
.
type
==
'
token
'
)
{
connect
(
addButton
,
'
onclick
'
,
function
()
{
sendjsonrequest
(
'
newviewtoken.json.php
'
,
{
'view'
:
{{
$viewid
}}}
,
'
POST
'
,
function
(
data
)
{
item
.
id
=
data
.
data
.
token
;
appendChildNodes
(
'
accesslist
'
,
renderAccessListItem
(
item
));
});
});
appendChildNodes
(
row
,
contextualHelpIcon
(
'
{
{
$formname
}
}
'
,
'
secreturl
'
,
'
core
'
,
'
view
'
,
null
,
null
));
}
else
{
connect
(
addButton
,
'
onclick
'
,
function
()
{
appendChildNodes
(
'
accesslist
'
,
renderAccessListItem
(
item
));
});
}
appendChildNodes
(
'
potentialpresetitems
'
,
row
);
return
row
;
}
// Given a row, render it on the right hand side
function
renderAccessListItem
(
item
)
{
var
removeButton
=
BUTTON
(
{
'type'
:
'button'
}
,
'
{
{
str
tag
=
remove
}
}
'
);
var
dateInfo
=
TABLE
(
null
,
TBODY
(
null
,
TR
(
null
,
TH
(
null
,
get_string
(
'
From
'
)
+
'
:
'
),
TD
(
null
,
makeCalendarInput
(
item
,
'
start
'
),
makeCalendarLink
(
item
,
'
start
'
))
),
TR
(
null
,
TH
(
null
,
get_string
(
'
To
'
)
+
'
:
'
),
TD
(
null
,
makeCalendarInput
(
item
,
'
stop
'
),
makeCalendarLink
(
item
,
'
stop
'
))
)
)
);
var
cssClass
=
'
ai-container
'
;
if
(
item
.
preset
)
{
cssClass
+=
'
preset
'
;
}
cssClass
+=
'
'
+
item
.
type
+
'
-container
'
;
if
(
item
.
type
==
'
token
'
)
{
item
.
name
=
config
.
wwwroot
+
'
view/view.php?t=
'
+
item
.
id
;
}
var
name
=
item
.
name
;
if
(
item
.
type
==
'
user
'
)
{
name
=
[
IMG
(
{
'src'
:
config
.
wwwroot
+
'thumb.php?type=profileicon&id='
+
item
.
id
+
'&maxwidth=20&maxheight=20'
}
),
'
'
,
name
];
}
var
row
=
TABLE
(
{
'class'
:
cssClass
}
,
TBODY
(
null
,
TR
(
null
,
TH
(
null
,
name
,
(
item
.
role
?
'
-
'
+
item
.
roledisplay
:
''
)),
TD
(
{
'class'
:
'right removebutton'
}
,
removeButton
)
),
TR
(
null
,
TD
(
{
'colspan'
:
2
}
,
dateInfo
,
INPUT
({
'
type
'
:
'
hidden
'
,
'
name
'
:
'
accesslist[
'
+
count
+
'
][type]
'
,
'
value
'
:
item
.
type
}),
(
item
.
id
?
INPUT
({
'
type
'
:
'
hidden
'
,
'
name
'
:
'
accesslist[
'
+
count
+
'
][id]
'
,
'
value
'
:
item
.
id
})
:
null
),
(
typeof
(
item
.
role
)
!=
'
undefined
'
?
INPUT
({
'
type
'
:
'
hidden
'
,
'
name
'
:
'
accesslist[
'
+
count
+
'
][role]
'
,
'
value
'
:
item
.
role
})
:
null
)
)
)
)
);
connect
(
removeButton
,
'
onclick
'
,
function
()
{
removeElement
(
row
);
});
appendChildNodes
(
'
accesslistitems
'
,
row
);
setupCalendar
(
item
,
'
start
'
);
setupCalendar
(
item
,
'
stop
'
);
count
++
;
}
function
makeCalendarInput
(
item
,
type
)
{
return
INPUT
({
'
type
'
:
'
text
'
,
'
name
'
:
'
accesslist[
'
+
count
+
'
][
'
+
type
+
'
date]
'
,
'
id
'
:
type
+
'
date_
'
+
count
,
'
value
'
:
item
[
type
+
'
date
'
]
?
item
[
type
+
'
date
'
]
:
''
,
'
size
'
:
'
15
'
});
}
function
makeCalendarLink
(
item
,
type
)
{
var
link
=
A
({
'
href
'
:
''
,
'
id
'
:
type
+
'
date_
'
+
count
+
'
_btn
'
,
'
onclick
'
:
'
return false;
'
,
// @todo do with mochikit connect
'
class
'
:
'
pieform-calendar-toggle
'
},
IMG
({
'
src
'
:
'
{
{
theme_path
location
=
'images/calendar.gif'
}
}
'
,
'
alt
'
:
''
})
);
return
link
;
}
function
setupCalendar
(
item
,
type
)
{
//log(type);
var
dateStatusFunc
,
selectedFunc
;
//if (type == 'start') {
// dateStatusFunc = function(date) {
// startDateDisallowed(date, $(item.id + '_stopdate'));
// };
// selectedFunc = function(calendar, date) {
// startSelected(calendar, date, $(item.id + '_startdate'), $(item.id + '_stopdate'));
// }
//}
//else {
// dateStatusFunc = function(date) {
// stopDateDisallowed(date, $(item.id + '_startdate'));
// };
// selectedFunc = function(calendar, date) {
// stopSelected(calendar, date, $(item.id + '_startdate'), $(item.id + '_stopdate'));
// }
//}
if
(
!
$
(
type
+
'
date_
'
+
count
))
{
logWarn
(
'
Couldn
\'
t find element:
'
+
type
+
'
date_
'
+
count
);
return
;
}
Calendar
.
setup
({
"
ifFormat
"
:
"
{
{
str
tag
=
strftimedatetimeshort
}
}
"
,
"
daFormat
"
:
"
{
{
str
tag
=
strftimedatetimeshort
}
}
"
,
"
inputField
"
:
type
+
'
date_
'
+
count
,
"
button
"
:
type
+
'
date_
'
+
count
+
'
_btn
'
,
//"dateStatusFunc" : dateStatusFunc,
//"onSelect" : selectedFunc
"
showsTime
"
:
true
});
}
// SETUP
// Left top: public, loggedin, friends
var
potentialPresets
=
{
{
$potentialpresets
}
};
forEach
(
potentialPresets
,
function
(
preset
)
{
renderPotentialPresetItem
(
preset
);
});
var
loggedinindex
=
{
{
$loggedinindex
}
};
function
ensure_loggedin_access
()
{
var
oldaccess
=
getFirstElementByTagAndClassName
(
null
,
'
loggedin-container
'
,
'
accesslistitems
'
);
if
(
oldaccess
)
{
forEach
(
getElementsByTagAndClassName
(
null
,
'
loggedin-container
'
,
'
accesslistitems
'
),
function
(
elem
)
{
if
(
oldaccess
!=
elem
)
{
removeElement
(
elem
);
}
});
}
else
{
renderAccessListItem
(
potentialPresets
[
loggedinindex
]);
}
var
newaccess
=
getFirstElementByTagAndClassName
(
null
,
'
loggedin-container
'
,
'
accesslistitems
'
);
addElementClass
(
getFirstElementByTagAndClassName
(
null
,
'
removebutton
'
,
newaccess
),
'
hidden
'
);
forEach
(
getElementsByTagAndClassName
(
null
,
'
pieform-calendar-toggle
'
,
newaccess
),
function
(
elem
)
{
addElementClass
(
elem
,
'
hidden
'
);
});
forEach
(
getElementsByTagAndClassName
(
'
input
'
,
null
,
newaccess
),
function
(
elem
)
{
if
(
elem
.
name
.
match
(
/
\[
st
(
art|op
)
date
\]
$/
))
{
elem
.
value
=
''
;
elem
.
disabled
=
true
;
}
});
}
function
relax_loggedin_access
()
{
forEach
(
getElementsByTagAndClassName
(
null
,
'
loggedin-container
'
,
$
(
'
accesslistitems
'
)),
function
(
elem
)
{
removeElementClass
(
getElementsByTagAndClassName
(
null
,
'
removebutton
'
,
elem
)[
0
],
'
hidden
'
);
forEach
(
getElementsByTagAndClassName
(
null
,
'
pieform-calendar-toggle
'
,
elem
),
function
(
elem1
)
{
removeElementClass
(
elem1
,
'
hidden
'
);
});
forEach
(
getElementsByTagAndClassName
(
'
input
'
,
null
,
elem
),
function
(
elem1
)
{
elem1
.
disabled
=
false
;
});
});
}
// Left hand side
var
searchTable
=
new
TableRenderer
(
'
results
'
,
'
access.json.php
'
,
[
undefined
,
undefined
,
undefined
]
);
searchTable
.
statevars
.
push
(
'
type
'
);
searchTable
.
statevars
.
push
(
'
query
'
);
searchTable
.
type
=
'
user
'
;
searchTable
.
pagerOptions
=
{
'
firstPageString
'
:
'
\
u00AB
'
,
'
previousPageString
'
:
'
<
'
,
'
nextPageString
'
:
'
>
'
,
'
lastPageString
'
:
'
\
u00BB
'
,
'
linkOptions
'
:
{
'
href
'
:
''
,
'
style
'
:
'
padding-left: 0.5ex; padding-right: 0.5ex;
'
}
}
searchTable
.
query
=
''
;
searchTable
.
rowfunction
=
function
(
rowdata
,
rownumber
,
globaldata
)
{
rowdata
.
type
=
searchTable
.
type
;
var
buttonTD
=
TD
(
{
'style'
:
'white-space:nowrap;'
}
);
var
addButton
=
BUTTON
(
{
'type'
:
'button'
,
'class'
:
'button'
}
,
'
{
{
str
tag
=
add
}
}
'
);
connect
(
addButton
,
'
onclick
'
,
function
()
{
appendChildNodes
(
'
accesslist
'
,
renderAccessListItem
(
rowdata
));
});
appendChildNodes
(
buttonTD
,
addButton
);
var
identityNodes
=
[],
profileIcon
=
null
,
roleSelector
=
null
;
if
(
rowdata
.
type
==
'
user
'
)
{
profileIcon
=
IMG
(
{
'src'
:
config
.
wwwroot
+
'thumb.php?type=profileicon&maxwidth=20&maxheight=20&id='
+
rowdata
.
id
}
);
identityNodes
.
push
(
A
(
{
'href'
:
config
.
wwwroot
+
'user/view.php?id='
+
rowdata
.
id
,
'target'
:
'_blank'
}
,
rowdata
.
name
));
}
else
if
(
rowdata
.
type
==
'
group
'
)
{
rowdata
.
role
=
null
;
var
options
=
[
OPTION
(
{
'value'
:
null
,
'selected'
:
true
}
,
'
{
{
str
tag
=
everyoneingroup
section
=
view
}
}
'
)];
for
(
r
in
globaldata
.
roles
[
rowdata
.
grouptype
])
{
options
.
push
(
OPTION
(
{
'value'
:
globaldata
.
roles
[
rowdata
.
grouptype
][
r
].
name
}
,
globaldata
.
roles
[
rowdata
.
grouptype
][
r
].
display
));
}
roleSelector
=
SELECT
(
{
'name'
:
'role'
}
,
options
);
connect
(
roleSelector
,
'
onchange
'
,
function
()
{
rowdata
.
role
=
this
.
value
;
if
(
this
.
value
)
{
rowdata
.
roledisplay
=
scrapeText
(
this
.
childNodes
[
this
.
selectedIndex
]);
}
});
identityNodes
.
push
(
A
(
{
'href'
:
config
.
wwwroot
+
'group/view.php?id='
+
rowdata
.
id
,
'target'
:
'_blank'
}
,
rowdata
.
name
));
identityNodes
.
push
(
"
-
"
);
identityNodes
.
push
(
roleSelector
);
}
return
TR
(
{
'class'
:
'r'
+
(
rownumber
%
2
)
}
,
buttonTD
,
TD
(
{
'style'
:
'vertical-align: middle;'
}
,
identityNodes
),
TD
(
{
'class'
:
'center'
,
'style'
:
'vertical-align: top;width:20px;'
}
,
profileIcon
)
);
}
searchTable
.
updateOnLoad
();
function
search
(
e
)
{
searchTable
.
query
=
$
(
'
search
'
).
value
;
searchTable
.
type
=
$
(
'
type
'
).
options
[
$
(
'
type
'
).
selectedIndex
].
value
;
searchTable
.
doupdate
();
e
.
stop
();
}
// Right hand side
addLoadEvent
(
function
()
{
var
accesslist
=
{
{
$accesslist
}
};
if
(
accesslist
)
{
forEach
(
accesslist
,
function
(
item
)
{
renderAccessListItem
(
item
);
});
}
update_loggedin_access
();
});
addLoadEvent
(
function
()
{
// Populate the "potential access" things (public|loggedin|allfreidns)
connect
(
$
(
'
search
'
),
'
onkeydown
'
,
function
(
e
)
{
if
(
e
.
key
().
string
==
'
KEY_ENTER
'
)
{
search
(
e
);
}
});
connect
(
$
(
'
dosearch
'
),
'
onclick
'
,
search
);
});
</script>
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