mavensmate
Version:
Core APIs that drive MavensMate IDEs for Salesforce1/Force.com
107 lines (100 loc) • 4.47 kB
HTML
<script type="text/javascript">
$(function() {
// enforce only a single checkbox checked
// allow table row to be selected
$('table#table-project-list > tbody > tr').on('click', function() {
var $chkBox = $(this).find('input.chk-project');
var $txtProjectId = $('#txt-hidden-selected-project-id');
$chkBox.prop('checked', !$chkBox.prop('checked'));
if ($chkBox.prop('checked')) {
$(this).addClass('slds-is-selected');
$txtProjectId.val($chkBox.data('pid'));
} else {
$(this).removeClass('slds-is-selected');
$txtProjectId.val('');
}
$('.chk-project').not($chkBox).attr('checked', false);
$('.chk-project').not($chkBox).parent().parent().parent().removeClass('slds-is-selected');
});
// search project list
$('input#txt-project-list-search').change(function() {
var searchTerm = $(this).val().toLowerCase();
$('#project-list-wrapper table > tbody > tr > th > div').each(function() {
var metaname = $(this).html().toLowerCase();
if (metaname.indexOf(searchTerm) === -1) {
$(this).parent().parent().hide();
} else {
$(this).parent().parent().show();
}
});
})
.keyup(function() {
$(this).change();
});
// open selected project
$("#btn-open-project").on('click', function() {
{% if isDesktop %}
$('#global-project-modal').modal('dismiss');
window.open('/app/project/'+$("#txt-hidden-selected-project-id").val()+'?pid='+$("#txt-hidden-selected-project-id").val());
$('table#table-project-list > tbody > tr').removeClass('slds-is-selected');
$('table#table-project-list > tbody > tr input.chk-project').prop('checked', false);
{% else %}
$("#btn-open-project").html('Opening...').addClass('disabled');
$("#btn-cancel-open-project").html('Opening...').addClass('disabled');
window.location = '/app/project/'+$("#txt-hidden-selected-project-id").val()+'?pid='+$("#txt-hidden-selected-project-id").val();
{% endif %}
});
// close modal
$("#btn-cancel-open-project").on('click', function() {
$('#global-project-modal').modal('dismiss');
});
});
</script>
<!-- PROJECT MODAL -->
<div aria-hidden="true" role="dialog" class="slds-modal slds-modal--large slds-fade-in-open slds-hide" id="global-project-modal">
<div class="slds-modal__container">
<div class="slds-modal__header">
<h2 class="slds-text-heading--medium">Select Project</h2>
</div>
<div class="slds-modal__content slds-p-around--medium">
<input type="hidden" id="txt-hidden-selected-project-id"/>
<div class="slds-box slds-theme--shade slds-m-bottom--x-small" id="div-project-list-filter">
<div class="slds-grid">
<div class="slds-col slds-has-flexi-truncate">
<input type="text" placeholder="Search for project" id="txt-project-list-search" class="slds-input" />
</div>
</div>
</div>
<div id="project-list-wrapper" class="slds-scrollable">
<table class="slds-table slds-table--bordered" role="grid" id="table-project-list">
<thead>
<tr class="slds-text-heading--label">
<td role="gridcell" scope="col" style="width:2rem;"></td>
<td role="gridcell" scope="col">Project Location</td>
</tr>
</thead>
<tbody>
{% for p in mavensmate.ui.listProjects() %}
<tr class="slds-hint-parent">
<td role="gridcell" class="slds-cell-shrink" data-label="Select row {{p.path}}" style="width:2rem;">
<label class="slds-checkbox">
<input type="checkbox" data-pid={{p.id}} class="chk-project" />
<span class="slds-checkbox--faux"></span>
<span class="slds-assistive-text">Select row {{p.path}}</span>
</label>
</td>
<th scope="row" data-label="Opportunity Name">
<div title="{{ p.path }}">{{ p.path }}</div>
</th>
</tr>
{% endfor %}
</tbody>
</table>
</div>
</div>
<div class="slds-modal__footer">
<button class="slds-button slds-button--neutral" id="btn-cancel-open-project">Cancel</button>
<button class="slds-button slds-button--neutral slds-button--brand" id="btn-open-project">Open</button>
</div>
</div>
</div>