// Compile template data
$templateData = array(
- 'monthYear' => $monthYear,
- 'enable_members' => $enable_members,
- 'haveMembers' => $haveMembers,
- 'members' => $list,
- 'memberCount' => $memberCount,
- 'categories' => $categories,
- 'member_types' => $member_types,
- 'haveFilter' => $haveFilter,
- 'filterArchived' => $filterArchived,
- 'filterFeatured' => $filterFeatured,
- 'filterPending' => $filterPending,
- 'catSelected' => $catSelected,
+ 'monthYear' => $monthYear,
+ 'enable_members' => $enable_members,
+ 'haveMembers' => $haveMembers,
+ 'members' => $list,
+ 'memberCount' => $memberCount,
+ 'categories' => $categories,
+ 'member_types' => $member_types,
+ 'haveFilter' => $haveFilter,
+ 'filterArchived' => $filterArchived,
+ 'filterFeatured' => $filterFeatured,
+ 'filterPending' => $filterPending,
+ 'catSelected' => $catSelected,
'catSearchSelected' => $catSelectedString,
- 'mTypeSelected' => $mTypeSelected,
- 'alphaList' => $alphaList,
- 'alphaSelected' => $alphaSelected,
- 'numbDisplayed' => $numbDisplayed,
- 'lastDisplayed' => $lastDisplayed,
- 'paging' => $paging,
- 'prevStart' => $prevStart,
- 'nextStart' => $nextStart,
- 'start' => $start,
- 'limit' => $limit,
- 'namesList' => $namesList,
- 'textSearch' => $textSearch
+ 'mTypeSelected' => $mTypeSelected,
+ 'alphaList' => $alphaList,
+ 'alphaSelected' => $alphaSelected,
+ 'numbDisplayed' => $numbDisplayed,
+ 'lastDisplayed' => $lastDisplayed,
+ 'paging' => $paging,
+ 'prevStart' => $prevStart,
+ 'nextStart' => $nextStart,
+ 'start' => $start,
+ 'limit' => $limit,
+ 'namesList' => $namesList,
+ 'textSearch' => $textSearch
);
// Return status, suggested view, and data to controller
$haveCities = true;
}
}
+
+ // Get a list of all members by city, used in the Settings > Cities list to limit city deletion
+ require_once GLM_MEMBERS_PLUGIN_CLASS_PATH.'/data/dataMemberInfo.php';
+ $MemberInfo = new GlmDataMemberInfo($this->wpdb, $this->config);
+ foreach ($cities as $city) {
+ $sql = "SELECT T.member_name, T.id FROM ".GLM_MEMBERS_PLUGIN_DB_PREFIX."member_info T WHERE T.city = " . $city["id"] . " ";
+ $membersForCity = $this->wpdb->get_results($sql, ARRAY_A);
+ foreach ($membersForCity as $memberForCity) {
+ $citiesWithMembers[$city["id"]][$memberForCity["id"]] = $memberForCity["member_name"];
+ }
+
+ }
// If we had a fatal error, redirect to the error page
if ($error) {
);
}
+ $citiesWithMembersJSON = json_encode($citiesWithMembers);
+
// Compile template data
$templateData = array(
- 'enable_members' => $enable_members,
- 'haveCities' => $haveCities,
- 'cities' => $cities
+ 'enable_members' => $enable_members,
+ 'haveCities' => $haveCities,
+ 'cities' => $cities,
+ 'citiesWithMembers' => $citiesWithMembers,
+ 'citiesWithMembersJSON' => $citiesWithMembersJSON
+
);
// Return status, suggested view, and data to controller
</center>
</div>
+ <!-- Delete City with Members Dialog Box -->
+ <div id="deleteCityWithMembersDialog" class="glm-dialog-box" title="Delete City With Members">
+ <center>
+ <p>This city is in use by several members and may not be deleted to make sure these are not left without a city.</p>
+ <p>Please set a different city for the following members, then refresh this page, and try again.</p>
+ <div class="cityMembers"></div>
+ <a id="deleteCityWithMembersCancel" class="button button-primary">Cancel</a>
+ </center>
+ </div>
+
<!-- Edit City Dialog Box -->
<div id="editCityDialog" class="glm-dialog-box" title="Edit this City">
<form action="{$thisUrl}?page={$thisPage}" method="post" enctype="multipart/form-data">
</form>
</div>
+ <!-- Show Members With City Dialog Box -->
+ <div id="showMembersWithCityDialog" class="glm-dialog-box" title="Members with this city">
+ <div class="cityMembers"></div>
+ <center>
+ <a id="showMembersWithCityCancel" class="button button-primary">Cancel</a>
+ </center>
+ </div>
+
<h2>Cities</h2>
<table class="wp-list-table widefat fixed posts glm-admin-table"">
</thead>
<tbody>
{if $haveCities}
+
+
{assign var="i" value="0"}
{foreach $cities as $t}
{if $i++ is odd by 1}
<td>
<a class="editCity" data-cityID="{$t.id}">{$t.name}</a>
</td>
+
<td>
- <div class="deleteCityButton button button-secondary glm-button-small glm-right" data-cityID="{$t.id}">Delete</div>
+ {$citiesWithMembers = $citiesWithMembers}
+ {if $t.id|array_key_exists:$citiesWithMembers}
+ <span>Assigned to {$citiesWithMembers[$t.id]|count} members </span>
+ <div class="showMembersWithCityButton button glm-button-small" data-cityID="{$t.id}">view</div>
+ <div class="deleteCityWithMembersButton button button-secondary glm-button-small glm-right" data-cityID="{$t.id}">Delete</div>
+ {else}
+ <span>Not assigned to any members</span>
+ <div class="deleteCityButton button button-secondary glm-button-small glm-right" data-cityID="{$t.id}">Delete</div>
+ {/if}
+
</td>
</tr>
{/foreach}
minWidth: 400,
dialogClass: "glm-dialog-no-close"
});
+ $("#deleteCityWithMembersDialog").dialog({
+ autoOpen: false,
+ minWidth: 400,
+ dialogClass: "glm-dialog-no-close"
+ });
+ $("#showMembersWithCityDialog").dialog({
+ autoOpen: false,
+ minWidth: 400,
+ dialogClass: "glm-dialog-no-close"
+ })
$('#newCityButton').click( function() {
$("#newCityDialog").dialog("open");
$('#deleteCityCancel').click( function() {
$("#deleteCityDialog").dialog("close");
});
+
+ var citiesWithMembers = '{$citiesWithMembersJSON}';
+ citiesWithMembers = JSON.parse(citiesWithMembers);
+ $('.deleteCityWithMembersButton').click( function() {
+
+ id = $(this).attr('data-cityID');
+
+ var citiesString = '<ul>';
+ //console.log(citiesString);
+ $.each(citiesWithMembers[id], function(memberID, memberName) {
+ var memberName = citiesWithMembers[id][memberID];
+ citiesString += '<li><a href=\"{$thisUrl}?page=glm-members-admin-menu-member&glm_action=memberInfo&member=' + memberID + '&memberInfo=' + memberID + '\" target=\"blank\">' + memberName + '</a></li>';
+ });
+ citiesString += '</ul>';
+ $("#deleteCityWithMembersDialog .cityMembers").html(citiesString);
+ $("#deleteCityWithMembersDialog").dialog("open");
+ });
+ $('#deleteCityWithMembersCancel').click( function() {
+ $("#deleteCityWithMembersDialog").dialog("close");
+ });
+
+ $('.showMembersWithCityButton').click( function() {
+
+ id = $(this).attr('data-cityID');
+
+ var citiesString = '<ul>';
+ //console.log(citiesString);
+ $.each(citiesWithMembers[id], function(memberID, memberName) {
+ var memberName = citiesWithMembers[id][memberID];
+ citiesString += '<li><a href=\"{$thisUrl}?page=glm-members-admin-menu-member&glm_action=memberInfo&member=' + memberID + '&memberInfo=' + memberID + '\" target=\"blank\">' + memberName + '</a></li>';
+ });
+ citiesString += '</ul>';
+
+ $("#showMembersWithCityDialog .cityMembers").html(citiesString);
+ $("#showMembersWithCityDialog").dialog("open");
+ });
+ $('#showMembersWithCityCancel').click( function() {
+ $("#showMembersWithCityDialog").dialog("close");
+ });
});
</script>