Skip to content

Commit

Permalink
Modify remote option values reload button display [rundeck#284]
Browse files Browse the repository at this point in the history
  • Loading branch information
gschueler committed Jun 2, 2011
1 parent ac401a9 commit de09bd1
Show file tree
Hide file tree
Showing 7 changed files with 341 additions and 22 deletions.
278 changes: 278 additions & 0 deletions graphics/refresh.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
13 changes: 13 additions & 0 deletions rundeckapp/grails-app/views/common/_css.gsp
Original file line number Diff line number Diff line change
Expand Up @@ -224,4 +224,17 @@
background: transparent url("${resource(dir:'images',file:'icon-small-folder.png')}") top left no-repeat;
}
.remotestatus.ok {
width: 12px;
background: transparent url("${resource(dir:'images',file:'icon-tiny-ok.png')}") center left no-repeat;
}
.remotestatus.error {
width: 12px;
background: transparent url("${resource(dir:'images',file:'icon-tiny-warn.png')}") center left no-repeat;
}
.remoteoptionfield:hover .remotestatus {
width: 12px;
background: transparent url("${resource(dir:'images',file:'icon-tiny-refresh.png')}") center left no-repeat;
}
</style>
5 changes: 3 additions & 2 deletions rundeckapp/grails-app/views/framework/_commandOptions.gsp
Original file line number Diff line number Diff line change
Expand Up @@ -25,15 +25,16 @@ used by _editOptions.gsp template
<g:set var="fieldName" value="${usePrefix+'option.'+optName}"/>
<g:set var="optionHasValue" value="${optionSelect.defaultValue || selectedoptsmap && selectedoptsmap[optName]}"/>
<g:set var="hasError" value="${jobexecOptionErrors?jobexecOptionErrors[optName]:null}"/>
<g:set var="fieldNamekey" value="${rkey+'_'+optName+'_label'}"/>
<tr>
<td class="${hasError?'fieldError':''}">${optName}:</td>
<td class="${hasError?'fieldError':''} remoteoptionfield" id="${fieldNamekey}"><span style="display:none;" class="remotestatus"></span> ${optName}:</td>
<td>
<g:if test="${optionSelect.valuesUrl !=null}">
<g:set var="holder" value="${rkey+'_'+optName+'_hold'}"/>
<span id="${holder}" >
</span>
<g:javascript>
_loadRemoteOptionValues("${holder}",'${scheduledExecutionId}','${optName}','${usePrefix}','${selectedoptsmap?selectedoptsmap[optName]:''}');
_loadRemoteOptionValues("${holder}",'${scheduledExecutionId}','${optName}','${usePrefix}','${selectedoptsmap?selectedoptsmap[optName]:''}','${fieldNamekey}',true);
</g:javascript>
</g:if>
<g:else>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -149,5 +149,5 @@
</span>
</g:if>
<g:elseif test="${values}">
<g:img file="icon-tiny-ok.png" title="Remote option values loaded from URL: ${srcUrl.encodeAsHTML()}"/>
%{--<g:img file="icon-tiny-ok.png" title="Remote option values loaded from URL: ${srcUrl.encodeAsHTML()}"/>--}%
</g:elseif>
52 changes: 35 additions & 17 deletions rundeckapp/grails-app/views/framework/_remoteOptionValuesJS.gsp
Original file line number Diff line number Diff line change
Expand Up @@ -24,30 +24,48 @@

<script type="text/javascript">
//add a reload button for remote option values
function _addReloadRemoteOptionValues(elem, schedId, optName, prefix, value) {
var btn = new Element('span');
function _addReloadRemoteOptionValues(elem, schedId, optName, prefix, value,reloader,obs) {
var btn;
var icn;
if($(reloader)){
btn=$(reloader);
icn=$(reloader).down('span.remotestatus');
icn.show();
}else{
btn= new Element('span');
icn= new Element('span');
}
btn.addClassName('action');
btn.addClassName('textbtn');
if($(elem).innerHTML.indexOf("_error_detail")<0){
btn.addClassName('minor');
icn.removeClassName('error');
icn.addClassName('ok');
}else{
icn.removeClassName('ok');
icn.addClassName('error');
}
btn.setAttribute('title','Click to reload the remote option values for: '+optName);
Event.observe(btn,'click',function(e){
//look for selected value
var newvalue=value;
if ($(elem).down('input')) {
newvalue = $(elem).down('input').value;
}else if ($(elem).down('select')) {
newvalue = $(elem).down('select').value;
}
_loadRemoteOptionValues(elem,schedId,optName,prefix,newvalue);
});
btn.innerHTML='reload';
$(elem).insert({bottom:btn});
if(obs){
Event.observe(btn,'click',function(e){
//look for selected value
var newvalue=value;
if ($(elem).down('input')) {
newvalue = $(elem).down('input').value;
}else if ($(elem).down('select')) {
newvalue = $(elem).down('select').value;
}
_loadRemoteOptionValues(elem,schedId,optName,prefix,newvalue,reloader,false);
});
}
if(!$(reloader)){
btn.innerHTML='reload';
$(btn).insert({bottom:icn});
$(elem).insert({bottom:btn});
}
}
//load remote values
function _loadRemoteOptionValues(elem,schedId,optName,prefix,value){
function _loadRemoteOptionValues(elem,schedId,optName,prefix,value,reloader, obs){
$(elem).loading('Loading option values&hellip;');
new Ajax.Updater(
elem,
Expand All @@ -58,7 +76,7 @@
onComplete: function(transport) {
if (transport.request.success()) {
$(elem).show();
_addReloadRemoteOptionValues(elem,schedId,optName,prefix,value);
_addReloadRemoteOptionValues(elem,schedId,optName,prefix,value,reloader, obs);
}
}
}
Expand Down
Loading

0 comments on commit de09bd1

Please sign in to comment.